詳解JavaScript邏輯Not運算子_javascript技巧

來源:互聯網
上載者:User

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

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

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

測試指令碼如下:

<script type="text/javascript">  var bFalse = false;//運算數是bool類型的數  var sRed = "red";//運算數是字串  var iZero = 0;//運算數是0  var iThreeFourFive = 345;//運算數是 0 以外的任何數字  var oObject = new Object();//對象  var oNull=null;//運算數是null  var oUndefined;//運算數是undifined  var oNaN=parseInt("abc");//使用parseInt方法把嘗試字串abc轉換成整數,因為abc不是數字,因此是轉不了的,所以返回的結果就是NaN   /*  writeln() 方法與 write() 方法幾乎一樣,差別僅在於是前者將在所提供的任何字串後添加一個分行符號。在HTML中,這通常只會在後面產生一個空格;  不過如果使用了 <PRE> 和 <XMP> 標識,這個分行符號會被解釋,且在瀏覽器中顯示。  */ document.writeln("<XMP>"); document.writeln("oNaN=parseInt(\"abc\")返回的結果是"+oNaN); document.writeln("bool類型的數false與!運算子運算之後的結果是:" + (!bFalse)); document.writeln("字串sRed與!運算子運算之後的結果是: " + (!sRed)); document.writeln("數字0與!運算子運算之後的結果是:" + (!iZero));//如果運算數是數字 0,返回 true  document.writeln("數字345與!運算子運算之後的結果是:" + (!iThreeFourFive));//如果運算數是 0 以外的任何數字,返回 false  document.writeln("對象oObject與!運算子運算之後的結果是:" + (!oObject));//如果運算數是對象,返回 false  document.writeln("NaN與!運算子運算之後的結果是:" + (!oNaN));//如果運算數是NaN,返回 true  document.writeln("null與!運算子運算之後的結果是:" + (!oNull));//如果運算數是 null,返回 true  document.writeln("undifined與!運算子運算之後的結果是:" + (!oUndefined)); //document.writeln("未定義的字串sBule與!運算子運算之後的結果是:" + (!sBule));//sBule前面沒有定義,也就是sBule運算數是 undefined,因此這裡發生錯誤  document.writeln("</XMP>"); </script>

運行結果:

  

判斷JavaScript變數的Boolean 值時,也可以使用邏輯NOT運算子。這樣做需要在一行代碼中使用兩個 NOT 運算子。無論運算數是什麼類型,第一個NOT運算子返回 Boolean值,第二個NOT將對該Boolean值取反,從而給出變數真正的Boolean值。使用not運算子判斷JavaScript變數的Boolean值是一個非常有用的技巧,只要知道了變數的boolean值,那麼當使用變數進行&&或者||運算時,就可以很快知道運算的結果了。
測試指令碼如下:

<script type="text/javascript">  var bFalse = false;//運算數是bool類型的數  var sRed = "red";//運算數是字串  var iZero = 0;//運算數是0  var iThreeFourFive = 345;//運算數是 0 以外的任何數字  var oObject = new Object();//對象  var oNull=null;//運算數是null  var oUndefined;//運算數是undifined  var oNaN=parseInt("abc");//使用parseInt方法把嘗試字串abc轉換成整數,因為abc不是數字,因此是轉不了的,所以返回的結果就是NaN /* 判斷JavaScript 變數的 Boolean 值時,也可以使用邏輯 NOT 運算子。這樣做需要在一行代碼中使用兩個 NOT 運算子。 無論運算數是什麼類型,第一個 NOT 運算子返回 Boolean 值。第二個 NOT 將對該 Boolean 值取反,從而給出變數真正的 Boolean 值。 */ document.write("<PRE>"); document.writeln("布爾數false 的邏輯值是 " + (!!bFalse)); document.writeln("字串sRed 的邏輯值是 " + (!!sRed)); document.writeln("數字0 的邏輯值是 " + (!!iZero)); document.writeln("數字345 的邏輯值是 " + (!!iThreeFourFive)); document.writeln("對象Object 的邏輯值是 " + (!!oObject)); document.writeln("NaN的邏輯值是 :" + (!!oNaN)); document.writeln("null 的邏輯值是 " + (!!oNull)); document.writeln("undefined 的邏輯值是 " + (!!oUndefined)); document.write("</PRE>"); </script>

以上就是關於JavaScript邏輯Not運算子的詳細資料,希望對大家的學習有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.