Son zamanlarda bunu 2 == [2]
JavaScript'te keşfettim . Anlaşıldığı gibi, bu tuhaflığın birkaç ilginç sonucu var:
var a = [0, 1, 2, 3];
a[[2]] === a[2]; // this is true
Benzer şekilde, aşağıdakiler çalışır:
var a = { "abc" : 1 };
a[["abc"]] === a["abc"]; // this is also true
Yine de yabancı olsa bile, bu da işe yarar:
[[[[[[[2]]]]]]] == 2; // this is true too! WTF?
Bu davranışlar tüm tarayıcılarda tutarlı görünmektedir.
Bunun neden bir dil özelliği olduğu hakkında bir fikriniz var mı?
İşte bu "özellik" in daha çılgın sonuçları:
[0] == false // true
if ([0]) { /* executes */ } // [0] is both true and false!
var a = [0];
a == a // true
a == !a // also true, WTF?
Bu örnekler jimbojw http://jimbojw.com şöhretinin yanı sıra walkingeyerobot tarafından bulundu .
+"2"
aynı zamanda 2 sayısıdır.