詳解JavaScript邏輯Not運(yùn)算符
在JavaScript 中,邏輯NOT運(yùn)算符與C和Java中的邏輯 NOT 運(yùn)算符相同,都由感嘆號(hào)(!)表示。與邏輯 OR 和邏輯 AND 運(yùn)算符不同的是,邏輯 NOT 運(yùn)算符返回的一定是 Boolean 值。
邏輯 NOT 運(yùn)算符的行為如下:
- 如果運(yùn)算數(shù)是對(duì)象,返回 false
- 如果運(yùn)算數(shù)是數(shù)字 0,返回 true
- 如果運(yùn)算數(shù)是 0 以外的任何數(shù)字,返回 false
- 如果運(yùn)算數(shù)是 null,返回 true
- 如果運(yùn)算數(shù)是 NaN,返回 true
- 如果運(yùn)算數(shù)是 undefined,發(fā)生錯(cuò)誤
測(cè)試腳本如下:
<script type="text/javascript">
var bFalse = false;//運(yùn)算數(shù)是bool類型的數(shù)
var sRed = "red";//運(yùn)算數(shù)是字符串
var iZero = 0;//運(yùn)算數(shù)是0
var iThreeFourFive = 345;//運(yùn)算數(shù)是 0 以外的任何數(shù)字
var oObject = new Object();//對(duì)象
var oNull=null;//運(yùn)算數(shù)是null
var oUndefined;//運(yùn)算數(shù)是undifined
var oNaN=parseInt("abc");//使用parseInt方法把嘗試字符串a(chǎn)bc轉(zhuǎn)換成整數(shù),因?yàn)閍bc不是數(shù)字,因此是轉(zhuǎn)不了的,所以返回的結(jié)果就是NaN
/*
writeln() 方法與 write() 方法幾乎一樣,差別僅在于是前者將在所提供的任何字符串后添加一個(gè)換行符。在HTML中,這通常只會(huì)在后面產(chǎn)生一個(gè)空格;
不過(guò)如果使用了 <PRE> 和 <XMP> 標(biāo)識(shí),這個(gè)換行符會(huì)被解釋,且在瀏覽器中顯示。
*/
document.writeln("<XMP>");
document.writeln("oNaN=parseInt(\"abc\")返回的結(jié)果是"+oNaN);
document.writeln("bool類型的數(shù)false與!運(yùn)算符運(yùn)算之后的結(jié)果是:" + (!bFalse));
document.writeln("字符串sRed與!運(yùn)算符運(yùn)算之后的結(jié)果是: " + (!sRed));
document.writeln("數(shù)字0與!運(yùn)算符運(yùn)算之后的結(jié)果是:" + (!iZero));//如果運(yùn)算數(shù)是數(shù)字 0,返回 true
document.writeln("數(shù)字345與!運(yùn)算符運(yùn)算之后的結(jié)果是:" + (!iThreeFourFive));//如果運(yùn)算數(shù)是 0 以外的任何數(shù)字,返回 false
document.writeln("對(duì)象oObject與!運(yùn)算符運(yùn)算之后的結(jié)果是:" + (!oObject));//如果運(yùn)算數(shù)是對(duì)象,返回 false
document.writeln("NaN與!運(yùn)算符運(yùn)算之后的結(jié)果是:" + (!oNaN));//如果運(yùn)算數(shù)是NaN,返回 true
document.writeln("null與!運(yùn)算符運(yùn)算之后的結(jié)果是:" + (!oNull));//如果運(yùn)算數(shù)是 null,返回 true
document.writeln("undifined與!運(yùn)算符運(yùn)算之后的結(jié)果是:" + (!oUndefined));
//document.writeln("未定義的字符串sBule與!運(yùn)算符運(yùn)算之后的結(jié)果是:" + (!sBule));//sBule前面沒(méi)有定義,也就是sBule運(yùn)算數(shù)是 undefined,因此這里發(fā)生錯(cuò)誤
document.writeln("</XMP>");
</script>
運(yùn)行結(jié)果:

判斷JavaScript變量的Boolean 值時(shí),也可以使用邏輯NOT運(yùn)算符。這樣做需要在一行代碼中使用兩個(gè) NOT 運(yùn)算符。無(wú)論運(yùn)算數(shù)是什么類型,第一個(gè)NOT運(yùn)算符返回 Boolean值,第二個(gè)NOT將對(duì)該Boolean值取反,從而給出變量真正的Boolean值。使用not運(yùn)算符判斷JavaScript變量的Boolean值是一個(gè)非常有用的技巧,只要知道了變量的boolean值,那么當(dāng)使用變量進(jìn)行&&或者||運(yùn)算時(shí),就可以很快知道運(yùn)算的結(jié)果了。
測(cè)試腳本如下:
<script type="text/javascript">
var bFalse = false;//運(yùn)算數(shù)是bool類型的數(shù)
var sRed = "red";//運(yùn)算數(shù)是字符串
var iZero = 0;//運(yùn)算數(shù)是0
var iThreeFourFive = 345;//運(yùn)算數(shù)是 0 以外的任何數(shù)字
var oObject = new Object();//對(duì)象
var oNull=null;//運(yùn)算數(shù)是null
var oUndefined;//運(yùn)算數(shù)是undifined
var oNaN=parseInt("abc");//使用parseInt方法把嘗試字符串a(chǎn)bc轉(zhuǎn)換成整數(shù),因?yàn)閍bc不是數(shù)字,因此是轉(zhuǎn)不了的,所以返回的結(jié)果就是NaN
/*
判斷JavaScript 變量的 Boolean 值時(shí),也可以使用邏輯 NOT 運(yùn)算符。這樣做需要在一行代碼中使用兩個(gè) NOT 運(yùn)算符。
無(wú)論運(yùn)算數(shù)是什么類型,第一個(gè) NOT 運(yùn)算符返回 Boolean 值。第二個(gè) NOT 將對(duì)該 Boolean 值取反,從而給出變量真正的 Boolean 值。
*/
document.write("<PRE>");
document.writeln("布爾數(shù)false 的邏輯值是 " + (!!bFalse));
document.writeln("字符串sRed 的邏輯值是 " + (!!sRed));
document.writeln("數(shù)字0 的邏輯值是 " + (!!iZero));
document.writeln("數(shù)字345 的邏輯值是 " + (!!iThreeFourFive));
document.writeln("對(duì)象Object 的邏輯值是 " + (!!oObject));
document.writeln("NaN的邏輯值是 :" + (!!oNaN));
document.writeln("null 的邏輯值是 " + (!!oNull));
document.writeln("undefined 的邏輯值是 " + (!!oUndefined));
document.write("</PRE>");
</script>

以上就是關(guān)于JavaScript邏輯Not運(yùn)算符的詳細(xì)信息,希望對(duì)大家的學(xué)習(xí)有所幫助。
- JS邏輯運(yùn)算符短路操作實(shí)例分析
- javaScript 邏輯運(yùn)算符使用技巧整理
- 老生常談javascript中邏輯運(yùn)算符&&和||的返回值問(wèn)題
- 深入了解JavaScript的邏輯運(yùn)算符(與、或)
- 巧用Javascript的邏輯運(yùn)算符
- javascript運(yùn)算符——邏輯運(yùn)算符全面解析
- JavaScript知識(shí)點(diǎn)總結(jié)(四)之邏輯OR運(yùn)算符詳解
- 詳解JavaScript邏輯And運(yùn)算符
- js比較和邏輯運(yùn)算符的介紹
- js的邏輯運(yùn)算符 ||
- JavaScript邏輯運(yùn)算符相關(guān)總結(jié)
相關(guān)文章
???????分享7?個(gè)實(shí)用?TypeScript?單行代碼
這篇文章主要介紹了???????分享7?個(gè)實(shí)用?TypeScript?單行代碼,其中包括泛型、斷言等高級(jí)用法,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助2022-05-05
有關(guān)suggest快速刪除后仍然出現(xiàn)下拉列表的bug問(wèn)題
寫(xiě)suggest的時(shí)候,有時(shí)我們快速刪除輸入框的文字后,但是suggest下拉列表還有出現(xiàn),導(dǎo)致的原因是因?yàn)閍jax異步請(qǐng)求造成的,下面通過(guò)本文給大家分享下解決方法,感興趣的朋友一起看看2016-12-12
layui實(shí)現(xiàn)圖片虛擬路徑上傳,預(yù)覽和刪除的例子
今天小編就為大家分享一篇layui實(shí)現(xiàn)圖片虛擬路徑上傳,預(yù)覽和刪除的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
如何在JavaScript中使用localStorage詳情
這篇文章主要介紹了如何在JavaScript中使用localStorage,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
推薦5 個(gè)常用的JavaScript調(diào)試技巧
這篇文章主要介紹了推薦5 個(gè)常用的JavaScript調(diào)試技巧,需要的朋友可以參考下2015-01-01
JavaScript數(shù)組問(wèn)題解決的多種方法
JavaScript數(shù)組問(wèn)題多種方法小結(jié),眾多blueidea高手聯(lián)袂打造2008-07-07
js判斷生效時(shí)間不得大于失效時(shí)間的思路及代碼
生效時(shí)間不得大于失效時(shí)間在一些推銷(xiāo)、優(yōu)惠方面還是比較實(shí)用的,接下來(lái)一起看下詳細(xì)的實(shí)現(xiàn)代碼,感興趣的朋友可以參考下哈,希望對(duì)你有所幫助2013-04-04

