KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I recently discovered that 2 == [2] in JavaScript. As it turns out, this quirk has a couple of interesting consequences: var a = [0, 1, 2, 3]; a[[2]] === a[2]; // this is true Similarly, the following works: var a = { "abc" : 1 }; a[["abc"]] === a["abc"]; // this is also true Even stranger still, this works as well: [[[[[[[2]]]]]]] == 2; // this is true too! WTF? These behaviors seem consistent across all browsers. Any idea why this is a language feature? Here are more insane consequences of this "feature": [0] == false // true if ([0]) { /* executes */ } // [0] is both true and false! var a = [0]; a == a // true a == !a // also true, WTF?
Tags (comma-separated)
Save Edits
Cancel