Strange behavior of a variable called "status" in javascript

<!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>
Run codeHide result

https://jsfiddle.net/vdr2r38r/

Why is the behavior different from identical variables with different names?

+4
source share
3 answers

This is because you are running your code in a global context! varbound variables are bound to the scope of the function. If you do not have a function, you are in a global context, which means that you are on the object in the browser window.

This code will write Demo:

<script>
  var foo = "Demo";
  console.log(window.foo);
</script>

Now your code breaks because it is window.status reserved .

, , , .

<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>
+5

status , status3 - . . . , : http://www.w3schools.com/js/js_reserved.asp

<!DOCTYPE html>
<html>
<body>

<p id="demo1"></p>
<p id="demo2"></p>

<script>
var status3 = [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 = status3[2];
document.getElementById("demo2").innerHTML = status1[2];
</script>

</body>
</html>
Hide result

, .

+3

'status', Windows Reserved Word. HTML HTML Windows.

+1

All Articles