在JavaScript 中,邏輯NOT運算符與C和Java中的邏輯 NOT 運算符相同,都由感嘆號(!)表示。與邏輯 OR 和邏輯 AND 運算符不一樣的是,邏輯 NOT 運算符返回的必定是 Boolean 值。javascript
邏輯 NOT 運算符的行爲以下:java
測試腳本以下:
瀏覽器
1 <script type="text/javascript"> 2 var bFalse = false;//運算數是bool類型的數 3 var sRed = "red";//運算數是字符串 4 var iZero = 0;//運算數是0 5 var iThreeFourFive = 345;//運算數是 0 之外的任何數字 6 var oObject = new Object();//對象 7 var oNull=null;//運算數是null 8 var oUndefined;//運算數是undifined 9 var oNaN=parseInt("abc");//使用parseInt方法把嘗試字符串abc轉換成整數,由於abc不是數字,所以是轉不了的,因此返回的結果就是NaN 10 11 /* 12 writeln() 方法與 write() 方法幾乎同樣,差異僅在因而前者將在所提供的任何字符串後添加一個換行符。在HTML中,這一般只會在後面產生一個空格; 13 不過若是使用了 <PRE> 和 <XMP> 標識,這個換行符會被解釋,且在瀏覽器中顯示。 14 */ 15 document.writeln("<XMP>"); 16 document.writeln("oNaN=parseInt(\"abc\")返回的結果是"+oNaN); 17 document.writeln("bool類型的數false與!運算符運算以後的結果是:" + (!bFalse)); 18 document.writeln("字符串sRed與!運算符運算以後的結果是: " + (!sRed)); 19 document.writeln("數字0與!運算符運算以後的結果是:" + (!iZero));//若是運算數是數字 0,返回 true 20 document.writeln("數字345與!運算符運算以後的結果是:" + (!iThreeFourFive));//若是運算數是 0 之外的任何數字,返回 false 21 document.writeln("對象oObject與!運算符運算以後的結果是:" + (!oObject));//若是運算數是對象,返回 false 22 document.writeln("NaN與!運算符運算以後的結果是:" + (!oNaN));//若是運算數是NaN,返回 true 23 document.writeln("null與!運算符運算以後的結果是:" + (!oNull));//若是運算數是 null,返回 true 24 document.writeln("undifined與!運算符運算以後的結果是:" + (!oUndefined)); 25 //document.writeln("未定義的字符串sBule與!運算符運算以後的結果是:" + (!sBule));//sBule前面沒有定義,也就是sBule運算數是 undefined,所以這裏發生錯誤 26 document.writeln("</XMP>"); 27 </script>
運行結果:測試
判斷JavaScript變量的Boolean 值時,也可使用邏輯NOT運算符。這樣作須要在一行代碼中使用兩個 NOT 運算符。不管運算數是什麼類型,第一個NOT運算符返回 Boolean值,第二個NOT將對該Boolean值取反,從而給出變量真正的Boolean值。使用not運算符判斷JavaScript變量的Boolean值是一個很是有用的技巧,只要知道了變量的boolean值,那麼當使用變量進行&&或者||運算時,就能夠很快知道運算的結果了。spa
測試腳本以下:code
1 <script type="text/javascript"> 2 var bFalse = false;//運算數是bool類型的數 3 var sRed = "red";//運算數是字符串 4 var iZero = 0;//運算數是0 5 var iThreeFourFive = 345;//運算數是 0 之外的任何數字 6 var oObject = new Object();//對象 7 var oNull=null;//運算數是null 8 var oUndefined;//運算數是undifined 9 var oNaN=parseInt("abc");//使用parseInt方法把嘗試字符串abc轉換成整數,由於abc不是數字,所以是轉不了的,因此返回的結果就是NaN 10 /* 11 判斷JavaScript 變量的 Boolean 值時,也可使用邏輯 NOT 運算符。這樣作須要在一行代碼中使用兩個 NOT 運算符。 12 不管運算數是什麼類型,第一個 NOT 運算符返回 Boolean 值。第二個 NOT 將對該 Boolean 值取反,從而給出變量真正的 Boolean 值。 13 */ 14 document.write("<PRE>"); 15 document.writeln("布爾數false 的邏輯值是 " + (!!bFalse)); 16 document.writeln("字符串sRed 的邏輯值是 " + (!!sRed)); 17 document.writeln("數字0 的邏輯值是 " + (!!iZero)); 18 document.writeln("數字345 的邏輯值是 " + (!!iThreeFourFive)); 19 document.writeln("對象Object 的邏輯值是 " + (!!oObject)); 20 document.writeln("NaN的邏輯值是 :" + (!!oNaN)); 21 document.writeln("null 的邏輯值是 " + (!!oNull)); 22 document.writeln("undefined 的邏輯值是 " + (!!oUndefined)); 23 document.write("</PRE>"); 24 </script>
運行結果:對象