在JavaScript規格:http://www.ecma-international.org/publications/standards/Ecma-262.htmJavascript:解釋如果Type(x)未定義,則返回true。如果Type(x)是空,則返回true
11.9.6全等比較算法
比較X === y,其中x和y是數值,產生true或 false。這樣的比較如下進行:
- 如果Type(x)與Type(y)不同,則返回false。
- 如果Type(x)是Undefined,則返回true。
- 如果Type(x)爲Null,則返回true。
- 如果類型(x)是數字,則
- 如果x是NaN,則返回false。
- 如果y是NaN,則返回false。
- 如果x與y的數值相同,則返回true。
- 如果x是+0且y是-0,則返回true。
- 如果x是-0且y是+0,則返回true。
- 返回false。
- 如果Type(x)是字符串,那麼,如果x和y是準確相同的字符序列(相同的長度和相同的字符在 相應位置)返回true;否則,返回false。
- 如果Type(x)是布爾型,則返回true,如果x和y都爲真或兩者都爲假;否則,返回false。
- 如果x和y引用同一個對象,則返回true。否則,返回false。注:該算法從SameValue算法在處理符號零的(9.12) 和NaN
不同是什麼加粗的部分是什麼意思?你如何寫出一些JavaScript來確認它? 我試過alert(typeof(undefined) === 'x');
,但它給了我false
。
爲了給我們更多的上下文而不必下載外部PDF文件,你可以填寫這些錯誤嗎? –
參見:http://stackoverflow.com/questions/6031372/undefined-and-null –