注意:根據ECMAScript5.1, section 15.1.1.3,window.undefined是隻讀的。JavaScript:undefined!undefined?
- 現代瀏覽器正確實現了這一點。例如:5.1的Safari,Firefox的7,鉻20等
- 未定義仍然多變在:鉻14,...
當我最近集成Facebook Connect與Tersus,我最初接收的嘗試調用Facebook API函數時出現錯誤消息Invalid Enumeration Value
和Handler already exists
。
原來,這個問題的原因是
object.x === undefined
返回false時,有在「對象」沒有財產「X」。
我工作圍繞這一問題通過定期平等更換全等在兩個類似Facebook的功能:
FB.Sys.isUndefined = function(o) { return o == undefined;};
FB.Sys.containsKey = function(d, key) { return d[key] != undefined;};
這使事情對我的工作,但似乎在Facebook的JavaScript代碼和之間的某種碰撞的暗示我擁有。
這是什麼原因造成的?
提示:有據可查的是undefined == null
而undefined !== null
。這不是問題。問題是我們如何得到undefined !== undefined
。
有趣的是,我只是在我的控制檯試過。 `var a = {}; a.b === undefined // true`。你確定你的`object.x === undefined`返回false是因爲對象中沒有字段x? – 2011-09-26 21:00:18
「按照ECMAScript5.1,第15.1.1.3節,window.undefined是隻讀的。「 - Horray,因爲在以前的版本中,有人可以在全球範圍覆蓋`undefined`,並且所有內容都會中斷:( – Dan 2013-06-04 09:01:14