根據這一頁https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Reserved_Words允許/建議的屬性名稱的JavaScript
不能使用這些保留字作爲變量,但是你可以用它們apperantly這樣:
var test = {
break : 'whatever',
case : 'whatever',
if : 'whatever',
in : 'whatever'
//etc
};
我在這裏有一個撥弄着所有的值http://jsfiddle.net/9RQ9j/4/
而且我沒有得到任何錯誤,要麼將它們定義或調用例如像這樣
console.log(test.if)
對我來說這似乎是可能的,但它是否與JavaScript規範衝突?那麼至少就像我測試過的所有瀏覽器(其中大多數)都違反規範並允許您使用這些詞。
(更新:似乎在IE 8 +其他可能的IE瀏覽器的失敗)
而且,廣告是好的做法呢?
最後一個問題:這可以嗎?
var test = {
'break' : 'whatever',
'case' : 'whatever',
'if' : 'whatever',
'in' : 'whatever'
};
您鏈接的頁面可以回答問題。請參閱底部的*保留字使用*部分。 – Quentin
是的,我以某種方式設法忽略了這一點。但是,像這樣使用任何保留字都會在我現在測試的IE8中觸發錯誤。也許在其他IE中也是如此。所以我假設你應該var test = {'if':'whatever'}是安全的跨瀏覽器。但即使在定義它之後,你不能調用test.if,你需要做IE8中的測試['if'] –