JavaScript知識點(diǎn)總結(jié)(四)之邏輯OR運(yùn)算符詳解
在JavaScript中,邏輯OR運(yùn)算符用||表示
var bTrue = true; var bFalse = false; var bResult = bTrue || bFalse;
下面的真值表描述了邏輯AND運(yùn)算符的行為:
在JavaScript中,0,"",false,null,undefined,NaN均表示false,
可以用如下的代碼證明:
<script type="text/javascript"> var bFalse = false;//bool類型 var strEmpty = "";//空字符串 var iZero = ;//數(shù)是 var oNull=null;//null var oUndefined;//undifined var oNaN=NaN;//NaN /* 判斷JavaScript 變量的 Boolean 值時,也可以使用邏輯 NOT 運(yùn)算符。這樣做需要在一行代碼中使用兩個 NOT 運(yùn)算符。 無論運(yùn)算數(shù)是什么類型,第一個 NOT 運(yùn)算符返回 Boolean 值。第二個 NOT 將對該 Boolean 值求負(fù),從而給出變量真正的 Boolean 值。 */ document.write("<PRE>"); document.writeln("布爾數(shù)false的邏輯值是 " + (!!bFalse)); document.writeln("空字符串(\"\")的邏輯值是 " + (!!strEmpty)); document.writeln("數(shù)字的邏輯值是 " + (!!iZero)); document.writeln("NaN的邏輯值是 :" + (!!oNaN)); document.writeln("null的邏輯值是 " + (!!oNull)); document.writeln("undefined的邏輯值是 " + (!!oUndefined)); document.write("</PRE>"); </script>
運(yùn)行結(jié)果:
JavaScript的邏輯 OR 運(yùn)算也是簡便運(yùn)算,對于邏輯 OR 運(yùn)算符來說,如果第一個運(yùn)算數(shù)值為 true,就不再計(jì)算第二個運(yùn)算數(shù),如果某個運(yùn)算數(shù)不是 Boolean 值,邏輯 OR 運(yùn)算并不一定返回 Boolean 值,邏輯||的運(yùn)算規(guī)則如下:
1.如果一個運(yùn)算數(shù)是對象,另一個是 Boolean 值,返回該對象。
2.如果兩個運(yùn)算數(shù)都是對象,返回第一個對象。
3.如果某個運(yùn)算數(shù)是 null,返回 null。
4.如果某個運(yùn)算數(shù)是 NaN,返回 NaN。
5.如果某個運(yùn)算數(shù)是 undefined,發(fā)生錯誤。
對于這些運(yùn)算規(guī)則,沒有必要死記硬背,因?yàn)樵贘avaScript中,可以使用邏輯Not運(yùn)算符來判斷JavaScript變量的Boolean值,判斷的方式就是"!!變量名",例如:
使用邏輯Not運(yùn)算符來判斷JavaScript變量的Boolean值
<script type="text/javascript"> var bFalse = false;//運(yùn)算數(shù)是bool類型的數(shù) var sRed = "red";//運(yùn)算數(shù)是字符串 var iZero = ;//運(yùn)算數(shù)是 var iThreeFourFive = ;//運(yùn)算數(shù)是 以外的任何數(shù)字 var oObject = new Object();//對象 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 值時,也可以使用邏輯 NOT 運(yùn)算符。這樣做需要在一行代碼中使用兩個 NOT 運(yùn)算符。 無論運(yùn)算數(shù)是什么類型,第一個 NOT 運(yùn)算符返回 Boolean 值。第二個 NOT 將對該 Boolean 值取反,從而給出變量真正的 Boolean 值。 */ document.write("<PRE>"); document.writeln("布爾數(shù)false 的邏輯值是 " + (!!bFalse)); document.writeln("字符串sRed 的邏輯值是 " + (!!sRed)); document.writeln("數(shù)字 的邏輯值是 " + (!!iZero)); document.writeln("數(shù)字 的邏輯值是 " + (!!iThreeFourFive)); document.writeln("對象Object 的邏輯值是 " + (!!oObject)); document.writeln("NaN的邏輯值是 :" + (!!oNaN)); document.writeln("null 的邏輯值是 " + (!!oNull)); document.writeln("undefined 的邏輯值是 " + (!!oUndefined)); document.write("</PRE>"); </script>
判斷結(jié)果:
邏輯||運(yùn)算符測試腳本:
<script type="text/javascript"> document.write("<PRE>"); /*JavaScript中的||將返回第一個不為false的那個值(對象亦可)或者最后一個值(如果全部都為false的話)*/ var a=; var b=; var c=a||b;//在JavaScript中,非的數(shù)字就代表true,就代表false document.writeln("a=,b=,c=a||b的結(jié)果是:"+c);//結(jié)果為,返回第一個不為false的那個值,所以值是 var bFalse=false; var bFalse=false; var num=;//代表false var result=bFalse||bFalse||num; document.writeln("bFalse=false,bFalse=false,num=,result=bFalse||bFalse||num的結(jié)果是:"+num);//如果全部都為false的話,返回最后一個值,因此結(jié)果是 /*如果一個運(yùn)算數(shù)是對象,另一個是 Boolean 值,返回該對象。*/ var obj = new Object(); var bTrue=true; var bFalse=false; document.writeln("obj||bTrue的結(jié)果是:"+(obj||bTrue));//返回object document.writeln("bTrue||obj的結(jié)果是:"+(bTrue||obj));//返回true,邏輯 OR 運(yùn)算也是簡便運(yùn)算。對于邏輯 OR 運(yùn)算符來說,如果第一個運(yùn)算數(shù)值為 true,就不再計(jì)算第二個運(yùn)算數(shù)。 document.writeln("obj||bFalse的結(jié)果是:"+(obj||bFalse));//返回object document.writeln("bFalse||obj的結(jié)果是:"+(bFalse||obj));//返回object /*如果兩個運(yùn)算數(shù)都是對象,返回第一個對象*/ var obj = new Object(); var obj = new Object(); document.writeln("obj==(obj||obj)的結(jié)果是:"+(obj==(obj||obj)));//結(jié)果為true document.writeln("obj==(obj||obj)的結(jié)果是:"+(obj==(obj||obj)));//結(jié)果為false /*如果某個運(yùn)算數(shù)是 null,返回 null。*/ var c=; var d=null; document.writeln("d=null,null的布爾值是;"+(!!d)); document.writeln("c=,d=null,c||d的結(jié)果是:"+(c||d)); document.writeln("c=,d=null,d||c的結(jié)果是:"+(d||c)); var o=new Object(); document.writeln("o是一個對象,d=null,o||d的結(jié)果是:"+(o||d));//返回object document.writeln("o是一個對象,d=null,d||o的結(jié)果是:"+(d||o));//返回object var zero=; document.writeln("zero=,d=null,zero||d的結(jié)果是:"+(zero||d));//返回null document.writeln("zero=,d=null,d||zero的結(jié)果是:"+(d||zero));//返回 var bTrue = true; var bResult = (bTrue || bUnknown); /*變量 bUnknown 是未定義的。不過,由于變量 bTrue 的值為 true,bUnknown 不會被計(jì)算,因此輸出的是 "true"。*/ document.writeln("bUnknown是未定義的一個變量,bResult = (bTrue || bUnknown)的結(jié)果是:"+bResult);//輸出 "true" bFalse = false; bResult = (bFalse || bUnknown); //發(fā)生錯誤 document.writeln(bResult); //不會執(zhí)行這一行 document.write("</PRE>");
運(yùn)行結(jié)果:
以上內(nèi)容是小編給大家介紹的JavaScript知識點(diǎn)總結(jié)(四)之邏輯OR運(yùn)算符詳解,希望對大家有所幫助!
相關(guān)文章
深入解析ECMAScript?2023?中的新數(shù)組方法
ECMAScript?是一種標(biāo)準(zhǔn)化的腳本語言,它是?JavaScript?的規(guī)范。ECMAScript?2023?是?JavaScript?編程語言的更新,旨在帶來改進(jìn)并使?JavaScript?程序可預(yù)測和可維護(hù),這篇文章主要介紹了探索?ECMAScript?2023?中的新數(shù)組方法,需要的朋友可以參考下2023-12-12bootstrap table動態(tài)加載數(shù)據(jù)示例代碼
本篇文章主要介紹了bootstrap table動態(tài)加載數(shù)據(jù)示例代碼,可以實(shí)現(xiàn)點(diǎn)擊選擇按鈕,彈出模態(tài)框,加載出關(guān)鍵詞列表,有興趣的可以了解一下。2017-03-03js模式化窗口問題![window.dialogArguments]
這篇文章主要介紹了js模式化窗口問題![window.dialogArguments],需要的朋友可以參考下2016-10-10Javascript模擬加速運(yùn)動與減速運(yùn)動代碼分享
這篇文章主要介紹了Javascript加速運(yùn)動與減速運(yùn)動代碼分享,需要的朋友可以參考下2014-12-12javascript實(shí)現(xiàn)復(fù)選框超過限制即彈出警告框的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)復(fù)選框超過限制即彈出警告框的方法,涉及復(fù)選框及警告框的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-02-02javascript保留兩位小數(shù)的實(shí)現(xiàn)方法你了解嗎
這篇文章主要為大家介紹了javascript保留兩位小數(shù)的實(shí)現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01用javascript實(shí)現(xiàn)點(diǎn)擊鏈接彈出"圖片另存為"而不是直接打開
用javascript實(shí)現(xiàn)點(diǎn)擊鏈接彈出"圖片另存為"而不是直接打開...2007-08-08