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 "' будет препятствовать определению новых глобальных переменных, здесь мы выполняем присвоение _an существующей переменной_, думаем об этом как 'name' в глобальной области видимости, например' window.Blob', 'window. консоль и т. д. –
ах, браузер уже предоставляет переменную с этим именем. Можем ли мы иметь супер-строгий режим, при котором невозможно получить доступ к глобальным именам по имени? :-) –