現在只說特殊情況:
1、一個變量,例如n1=null
<script> var n1 = null; alert(n1);/*彈窗的值為null*/ if (n1 == null) {/*如果是if(n1)將不會執行里面的函數體*/ alert("彈窗了"); } </script>
2、一個變量,例如n1,不賦值
<script> var n1; alert(n1);/*彈窗的值為undefined*/ if (typeof (n1) == "undefined") {/*如果是if(n1)或者if(n1=="undefined")將不會執行里面的函數體*/ alert("彈窗了"); } </script>
3、一個變量,例如n1,n1=“”
<script> var n1 = ""; alert(n1);/*彈窗的值為空(什么都不顯示,但是會彈窗)*/ if (n1 == "") {/*如果是if(n1)將不會執行里面的函數體*/ alert("彈窗了"); } </script>
4、一個變量,例如n1,n1=“ ”
<script> var n1 = " "; alert(n1);/*彈窗的值為空(什么都不顯示,但是會彈窗)*/ if (n1) {/*如果是n1.trim().length > 0將不會執行里面的函數體*/ alert("彈窗了"); } </script>
5、一個變量,例如n1,n1=0,n2不賦值
<script> var n1 = 0; var n2; alert(n1 + n2);/*彈窗的值為NaN*/ if (isNaN(n1 + n2)) {/*如果是if (n1 + n2)將不會執行里面的函數體*/ alert("彈窗了"); } </script>
6、對於上述的情況,除了n1=“ ”賦值的是多個空格這個特殊情況,其他都可以用下述代碼來判斷
if (!n1)
注釋:因為上述幾種情況,直接寫if(n1)或者if(n1+n2)都不會直接執行函數體中的代碼,所以這樣寫也是可行。