2013-05-31 68 views
2

在閱讀MDN here,我碰到[object Null]&[object Undefined]是否尚未實現?

進來的JavaScript開始1.8.5的toString()呼籲空返回[對象 空],和不確定的回報[對象未定義],如在第5 版定義ECMAScript和後續的勘誤表。請參閱使用toString至 檢測對象類型。

我試圖Object(null).toString() & Object(undefined).toString()

和兩個返回"[object Object]"

作爲每specification,原始類型在JS是未定義,NULL,布爾,數字,或字符串。

所以會是正確的假設,此刻,所有的瀏覽器都尚未落實:

[object Undefined] & [object Null]

回答

2

爲了獲得內部[[類],則需要設置的值作爲Object.prototype.toString()this值,所以:

Object.prototype.toString.call(null);  // [object Null] 
Object.prototype.toString.call(undefined); // [object Undefined] 

這在ECMAScript的5定義如下:

8.6.2對象內部的屬性和方法

[[Class]]內部屬性的值由本規範針對每種內置對象定義。主機對象的[[Class]]內部屬性的值可以是除"Arguments", "Array", "Boolean", "Date", "Error", "Function", "JSON", "Math", "Number", "Object", "RegExp", and "String"之一以外的任何字符串值。 [[Class]]內部屬性的值用於內部區分不同類型的對象。 請注意,除非通過Object.prototype.toString(見15.2.4.2),否則本規範不提供任何程序訪問該值的方法。

+0

哦,我的壞,在進入結論之前。謝謝。 – loxxy

+0

不客氣。 –

相關問題