2014-05-04 75 views
0

你好傢伙我實際上在做一個簡單的javascript來檢查布爾值。我知道這已被問了很多次。我相當新的JavaScript和這幾乎所有關於基本不是?檢查javascript布爾值的奇怪行爲

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

事情是這個腳本從來沒有工作。即使boolValue設置爲false,boolValue也是如此。我不知道我是否在這裏錯過了一些東西,但對於我遇到的其他語言而言,這是非常微不足道的。在同一範圍內,您有一個在函數外聲明的變量。我期望boolValue可以在f1()內部訪問嗎?我也用===完成了這個。

所以這裏就是我的實際操作我正在玩W3C JavaScript基本入門教程。我玩過,我想對按鈕進行切換效果,從而改變信息的來回。

所以在這裏我做了什麼:

<!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

你的第一個例子適合我。 – Metalstorm

+1

將它作爲參數傳入,而不是像這樣使用全局。並使用'textContent'而不是'innerHTML'。並使用外部事件處理,而不是內聯JavaScript。 –

+1

你的例子適合我。也可以檢查布爾值,如下所示:if(boolValue)// true else // false – lashab

回答

4

問題出在變量名上。全局使用時,status是指window對象的成員。 window.status被某個功能所使用,該功能目前在大多數瀏覽器中都已停用,因此您無法再進行設置。有關更多信息,請參見https://developer.mozilla.org/en-US/docs/Web/API/Window.status

然後,解決方案是使用變量的另一個名稱(如flag或其他)或將整個事物包裝在一個函數中,以便它變成局部變量。

+0

我永遠不知道'status'是什麼問題。謝謝! –