MDC ==
operatörü şu şekilde tanımlar :
İki işlenen aynı türde değilse, JavaScript işlenenleri dönüştürür ve ardından katı karşılaştırma uygular. İşlenenlerden biri sayı veya mantıksal ise, işlenenler mümkünse sayılara dönüştürülür; başka işlenenlerden biri bir dizge ise, diğer işlenen mümkünse dizgeye dönüştürülür.
Bunu akılda tutarak "true" == true
şu şekilde değerlendiririm :
- Aynı türden mi? Hayır
- Ya işlenen bir sayı mı yoksa mantıksal mı? Evet
- İkisini de bir sayıya dönüştürebilir miyiz? Hayır (
isNaN(Number("true")) // true
) - İşlenenlerden biri dizge mi? Evet
- Diğer işleneni bir dizgeye dönüştürebilir miyiz? Evet (
String(true) === "true" // true
)
Sonunda dizeleri buldum "true"
ve "true"
değerlendirilmesi gereken true
, ancak JavaScript yanlış gösteriyor.
Neyi özledim?