我在IE浏览器中,使用strict模式.
发现,严格模式下, 不允许一个属性多处定义的错误提示, 这个怎么解决?
use strict
模式下, 在相同作用域下的相同变量是不允许多次定的:
// global scope
let aVariable = 1;
let aVariable = 3; // Identifier 'aVariable' has already been declared
但是在不同的作用于是可以多次定义, 按照局部(local)屏蔽全局(global)原则:
// global scope
let aVariable = 1;
{
// local scope
// in fact the aVariable here is another identifier!
let aVariable = 3;
console.log(aVariable); // 3
}
console.log(aVariable); // 1
其实一个变量在实际使用的时候, 不需要多次定义, 可以一次定义, 多次修改变量值. 可以采用类似c语言
的方式, 作用域scope
里在用到的变量在作用于最前面声明并初始化:
function sampleFoo() {
let a = [],
i = 0; // variable for loop with initailization
for (i = 1; i <= 3; i += 1) { // "i" changes
a.push(i);
}
}
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
误解题主的问题了.请忽略我的解释.
可能是你的浏览器不支持. 严格模式, 也是区分浏览器兼容的.