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
时犯了一个错误。我认为使用'strict'模式会捕获它,但实际上并没有。按理说,这种情况不应该抛出错误吗?
name
在全局作用域中,就像window.Blob
、window.console
等一样。" - Benjamin Gruenbaumname
的变量,浏览器也会在全局范围内为您定义它。 - John Dvorakname
属性的环境中,严格模式错误会(应该)出现。 - Benjamin Gruenbaum