JavaScript學習總結(二)——邏輯Not運算符詳解


  在JavaScript 中,邏輯NOT運算符與C和Java中的邏輯 NOT 運算符相同,都由感嘆號(!)表示。與邏輯 OR 和邏輯 AND 運算符不同的是,邏輯 NOT 運算符返回的一定是 Boolean 值

邏輯 NOT 運算符的行為如下:

  • 如果運算數是對象,返回 false
  • 如果運算數是數字 0,返回 true
  • 如果運算數是 0 以外的任何數字,返回 false
  • 如果運算數是 null,返回 true
  • 如果運算數是 NaN,返回 true
  • 如果運算數是 undefined,發生錯誤

測試腳本如下:

 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值,那么當使用變量進行&&或者||運算時,就可以很快知道運算的結果了。

測試腳本如下:

 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>

運行結果:

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM