<!DOCTYPE html>
<html>
<body>
<p id="demo1"></p>
<p id="demo2"></p>
<script>
var status = [true,false,true,false,true,false,true,false,true,false];
var status1 = [true,false,true,false,true,false,true,false,true,false];
document.getElementById("demo1").innerHTML = status[2];
document.getElementById("demo2").innerHTML = status1[2];
</script>
</body>
</html>
https://jsfiddle.net/vdr2r38r/
为什么具有不同名称的相同变量的行为不同?
这是因为您在全局上下文中运行代码!var
绑定变量绑定到功能范围。如果您没有任何功能,则说明您处于全局上下文中,这意味着在浏览器中您位于该window
对象上。
此代码将记录Demo
:
<script>
var foo = "Demo";
console.log(window.foo);
</script>
现在,你的代码休息,因为window.status
被保留。
一个简单的解决方法是用函数将代码包围起来,以为变量提供新的上下文,这始终是一种好习惯。
<script>
(function() {
var status = [true,false,true,false,true,false,true,false,true,false];
var status1 = [true,false,true,false,true,false,true,false,true,false];
document.getElementById("demo1").innerHTML = status[2];
document.getElementById("demo2").innerHTML = status1[2];
})();
</script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句