18
var test = function() {
'use strict';
var mapNames = {
'name': 'City Name:',
'coord.lat': 'Latitute:'
};
for (var key in mapNames) {
var names;
if (mapNames[key]) {
name = mapNames[key];
} else {
name = key;
}
}
console.log(name);
}
test();
在上面的代碼中,我聲明變量names
並使用name
代替了一個錯誤。我認爲'嚴格'模式會抓住它,但它沒有。這不應該在這種情況下拋出一個錯誤?JavaScript「嚴格模式」不能按預期工作?
不應''嚴格使用''防止這個嗎? –
@JanDvorak''use strict「'會阻止定義新的全局變量,在這裏我們正在執行一個賦值給_現有的變量_,認爲它是'name'在全局範圍內,比如'window.Blob','窗口。控制檯「等。 –
啊,瀏覽器已經提供了這個名字的變量。我們可以有一個超級嚴格模式,全局名稱不能被名稱訪問嗎? :-) –