我有這樣的產量在控制檯:很奇怪的行爲比較不確定的和虛假的
console.log((!undefined)==(!false)) // true (fine)
console.log((!!undefined)==(!!false)) // true (still fine)
據我所知,!!x==x
,不是嗎?
console.log((undefined)==(false)) // false
有誰能告訴我爲什麼這會返回false?
!!false==false
和!!undefined==undefined
是不是真的?
在像'!'這樣的邏輯運算符中使用時,未定義的值被強制爲'false':http://11heavens.com/falsy-and-truthy-in-javascript – apsillers
任何引用(官方)這個? – skafandri
[logical not operator](http://ecma-international.org/ecma-262/5.1/#sec-11.4.9),雖然'!undefined'當然是'true'。 – Esailija