undefined === null => false
undefined == null => true
我曾想過的
undefined == null
的原因,發現只有一種情況:undefined和nullif(document.getElementById() == null) ....
是否有任何其他原因使(
undefined === null) == false
是?還有其他使用示例
===
- javascript中的操作?
undefined === null => false
undefined == null => true
我曾想過的undefined == null
的原因,發現只有一種情況:undefined和null
if(document.getElementById() == null) ....
是否有任何其他原因使(undefined === null) == false
是?還有其他使用示例===
- javascript中的操作?
是否有任何其他原因使(undefined === null)== false?
它們並不相同,所以Strict Equality Comparison Algorithm認爲它們是錯誤的。
是否有任何其他使用===的例子 - 在JavaScript中操作?
===
給出了最可預測的結果。當我有類型強制的特定目的時,我只使用==
。 (見Abstract Equality Comparison Algorithm。)
===
是嚴格平等的。
未定義和null不是一回事。
==
使用類型強制。
null
和undefined
相互脅迫。
null
和undefined
是兩個不同的概念。 undefined
缺少值(如果您使用var定義變量而不初始化它,它不包含null
,但undefined
),而使用null
變量存在並使用值null
進行初始化,該值是一種特殊類型的值。
雖然JavaScript的相等運算符被破壞,但Crockford發現它缺乏傳遞性,因此建議始終使用嚴格的等式(===)。考慮該表公佈在Javascript中好的部分:
'' == '0' // false
0 == '' // true
0 == '0' // true
false == 'false' // false
false == '0' // true
false == undefined // false
false == null // false
null == undefined // true
*「未定義是缺乏價值(可能變量不存在),」*這不太正確。使用'undefined',變量確實存在,但它已被分配(或重新分配)其默認值'undefined'。如果你試圖比較一個不存在的變量,你會得到一個'ReferenceError'。 – user113716 2011-05-17 13:39:40
@patrick你說得對。我已經解決了答案。謝謝。 – stivlo 2011-05-17 13:42:58
Type coercion
(使用==操作符),可能導致意想不到的或意想不到的結果。在我可以在網上找到道格拉斯克羅克福德的所有談話後(我主要是雅虎視頻),我已經習慣了所有時間都使用===
。鑑於我的嚴格平等運算符的默認使用,我會更感興趣的類型強制JavaScript用例;〜)時下。
同一時間。令人印象深刻的 – Raynos 2011-05-17 13:25:00
@Raynos:是的,我等了幾秒鐘,以便趕上。 ; o) – user113716 2011-05-17 13:26:12