检查javascript布尔奇怪的行为

时间:2014-05-04 16:55:49

标签: javascript

大家好我实际上是在做一个检查布尔值的简单javascript。我知道这已被问过很多次了。我是javascript的新手,这几乎都是关于基本的isn&#t; t?

<script>
var boolValue = true;
function f1()
{
     if(boolValue == true)
          alert("This is true!");
     else
          alert("This is false!");
}
</script>

事情是这个脚本永远不会起作用。 boolValue为true,即使boolValue设置为false。我不知道我是否在这里遗漏了一些东西,但这对我遇到的其他语言来说是微不足道的。您有一个在同一范围内的函数外声明的变量。我希望bo1Value可以在f1()中访问?我也用===做了这个。

所以这就是我实际在做的事情我正在玩关于JavaScript的W3C基础介绍的教程。我玩了一下,我想在按钮上做一个切换效果,改变信息的来回。

所以我在这做了什么:

<!DOCTYPE html>
<html>
<body>

<h1>My First JavaScript</h1>

<p>JavaScript can change the content of an HTML element:</p>

<button type="button" onclick="myFunction()">Click Me!</button>

<p id="demo">This is a demonstration.</p>

<script>

var status = true;

function myFunction() 
{   
if(status == true)
{
    document.getElementById("demo").innerHTML = "Hello World!";
    status = false;
}   
else
{
    document.getElementById("demo").innerHTML = "This is a demonstration.";
    status = true;
}
}

</script>

</body>
</html>

同时将var变为全局也不会改变它。你如何检查javascript中的布尔值?特别是,更改在函数外声明的变量并在该函数内更改该变量?但是,如果我将布尔值更改为整数,0或1等信号。它可以工作。我想要的是与布尔类似的行为。

我正在使用Opera。我没有其他浏览器来测试这个。谢谢!

1 个答案:

答案 0 :(得分:4)

问题在于变量名称。在全局使用时,status引用window对象的成员。 window.status被大多数浏览器中禁用的功能使用,因此您无法再设置它。有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/API/Window.status

然后解决方案是为变量使用另一个名称(如flag或其他东西)或将整个事物包装在函数中,使其成为局部变量。