2013-10-11 19 views
2

是代碼,無論代碼的作品,但我試圖findout這是瀏覽器爲布爾值賦值的JavaScript代碼的語法HTML對象下面

哪個代碼是正確的更完美?

<script> 

document.getElementById("firstbtn").disabled=true; 

</script> 

<script> 

document.getElementById("firstbtn").disabled='true'; 

</script> 

也當我們在

if(document.getElementById("firstbtn").disabled ==true) 

if(document.getElementById("firstbtn").disabled =='true') 
+0

一個相關的主題(但實際上是一個不同的問題)是HTML標籤中的'disabled'屬性和DOM對象的'disabled'屬性之間的差異,這是混淆的另一個重要來源。 –

回答

3

比較使用一個布爾值。該字符串僅適用於投影到布爾值時,它被評估爲true。如果您要分配"false",那麼該字符串也將被評估爲true

+1

拇指規則:具有「true」,「YES」,「Y」等值的字符串在實際數據類型的語言中通常沒有意義。 –

1

重要的是要了解哪些值在JavaScript中評估爲false。 Falsy值爲:undefined,null,NaN, 0-0,""false。這意味着,一切其他計算爲true

document.getElementById("firstbtn").disabled=true /* True */ 
document.getElementById("firstbtn").disabled="true" /* True */ 
document.getElementById("firstbtn").disabled="false" /* True */ 
document.getElementById("firstbtn").disabled="banana" /* True */ 
document.getElementById("firstbtn").disabled=1 /* True */ 
document.getElementById("firstbtn").disabled=4723598495 /* True */ 
document.getElementById("firstbtn").disabled=false /* False */ 
document.getElementById("firstbtn").disabled="" /* False */ 
document.getElementById("firstbtn").disabled=0 /* False */ 
document.getElementById("firstbtn").disabled=NaN /* False */ 

正因爲如此,你可以在上面看到的與「假」進行評估,以true,因爲它是長度大於0

更大的字符串其主題是,答案是兩者都是。兩者都完成了工作。但是,您也可以使用disabled=true,以避免以後出現混淆。