我最近2 == [2]
在JavaScript中发现了这一点。事实证明,这个怪癖有一些有趣的后果:
var a = [0, 1, 2, 3];
a[[2]] === a[2]; // this is true
同样,以下工作:
var a = { "abc" : 1 };
a[["abc"]] === a["abc"]; // this is also true
甚至还是陌生人,这也起作用:
[[[[[[[2]]]]]]] == 2; // this is true too! WTF?
这些行为在所有浏览器中似乎都是一致的。
知道为什么这是语言功能吗?
这是此“功能”的更疯狂的后果:
[0] == false // true
if ([0]) { /* executes */ } // [0] is both true and false!
var a = [0];
a == a // true
a == !a // also true, WTF?
这些示例由jimbojw http://jimbojw.com的名望以及walkingeyerobot发现。
+"2"
也是数字