js中的布爾運(yùn)算符使用介紹
更新時(shí)間:2013年11月20日 11:53:55 作者:
布爾運(yùn)算符 && 和 || 的時(shí)候,我說(shuō)過(guò)它們的結(jié)果是布爾值,它們也能用于計(jì)算其他的類型的數(shù)據(jù),這種時(shí)候,返回的就將是其中的一個(gè)參數(shù)了
在之前我們討論到布爾運(yùn)算符 && 和 || 的時(shí)候,我說(shuō)過(guò)它們的結(jié)果是布爾值。這樣說(shuō)起來(lái)有點(diǎn)過(guò)于簡(jiǎn)單化了。如果你用它們來(lái)計(jì)算布爾數(shù)據(jù)類型,它們確實(shí)會(huì)返回布爾值。但是它們也能用于計(jì)算其他的類型的數(shù)據(jù),這種時(shí)候,返回的就將是其中的一個(gè)參數(shù)了。
或運(yùn)算符“||” 真正做的事是這樣的:它首先檢查一下它左邊的參數(shù),如果轉(zhuǎn)換成布爾類型的值后為true,那么就返回左邊的參數(shù),否則就返回右邊的參數(shù)。 仔細(xì)想想當(dāng)運(yùn)算符兩邊都是布爾類型的值的時(shí)候,是不是這樣的。為什么它這樣運(yùn)行?這樣運(yùn)行的結(jié)果其實(shí)非常實(shí)用。我們來(lái)看這個(gè)例子:
var input = prompt("What is your name?", "Kilgore Trout");
alert("Well hello " + (input || "dear"));
如果用戶按“取消”或者直接關(guān)掉prompt對(duì)話框,input的值將是null或者“”。這兩種情況下,轉(zhuǎn)換成布爾類型的值都是false。那么這時(shí)候 input || “dear” 這個(gè)表達(dá)式的意思就是input有值的時(shí)候就得到input的值,否則就得到“dear”。這是一個(gè)很簡(jiǎn)單的提供一個(gè)默認(rèn)值的方法。
與運(yùn)算符 “&&” 的工作原理類似,但是與 “||” 正好相反。當(dāng)它左邊的參數(shù)轉(zhuǎn)換成布爾類型的值為“false”的時(shí)候,它就返回那個(gè)值,否則返回右邊的值。這兩個(gè)操作符還有一個(gè)特點(diǎn)就是,只有在必要的時(shí)候,才會(huì)計(jì)算它右邊的表達(dá)式的值。在“true || X” 這個(gè)表達(dá)式中,不管X是什么,結(jié)果都是true,所以X就不會(huì)被計(jì)算,如果X有其他的效果,那這個(gè)效果也不會(huì)產(chǎn)生?!癴alse && X” 也是同樣的道理。
false || alert("I'm happening!");
true || alert("Not me.");
或運(yùn)算符“||” 真正做的事是這樣的:它首先檢查一下它左邊的參數(shù),如果轉(zhuǎn)換成布爾類型的值后為true,那么就返回左邊的參數(shù),否則就返回右邊的參數(shù)。 仔細(xì)想想當(dāng)運(yùn)算符兩邊都是布爾類型的值的時(shí)候,是不是這樣的。為什么它這樣運(yùn)行?這樣運(yùn)行的結(jié)果其實(shí)非常實(shí)用。我們來(lái)看這個(gè)例子:
復(fù)制代碼 代碼如下:
var input = prompt("What is your name?", "Kilgore Trout");
alert("Well hello " + (input || "dear"));
如果用戶按“取消”或者直接關(guān)掉prompt對(duì)話框,input的值將是null或者“”。這兩種情況下,轉(zhuǎn)換成布爾類型的值都是false。那么這時(shí)候 input || “dear” 這個(gè)表達(dá)式的意思就是input有值的時(shí)候就得到input的值,否則就得到“dear”。這是一個(gè)很簡(jiǎn)單的提供一個(gè)默認(rèn)值的方法。
與運(yùn)算符 “&&” 的工作原理類似,但是與 “||” 正好相反。當(dāng)它左邊的參數(shù)轉(zhuǎn)換成布爾類型的值為“false”的時(shí)候,它就返回那個(gè)值,否則返回右邊的值。這兩個(gè)操作符還有一個(gè)特點(diǎn)就是,只有在必要的時(shí)候,才會(huì)計(jì)算它右邊的表達(dá)式的值。在“true || X” 這個(gè)表達(dá)式中,不管X是什么,結(jié)果都是true,所以X就不會(huì)被計(jì)算,如果X有其他的效果,那這個(gè)效果也不會(huì)產(chǎn)生?!癴alse && X” 也是同樣的道理。
復(fù)制代碼 代碼如下:
false || alert("I'm happening!");
true || alert("Not me.");
您可能感興趣的文章:
相關(guān)文章
js隱式轉(zhuǎn)換的知識(shí)實(shí)例講解
在本篇文章中,小編給大家分享了關(guān)于js隱式轉(zhuǎn)換的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們參考學(xué)習(xí)下。2018-09-09
利用google提供的API(JavaScript接口)獲取網(wǎng)站訪問(wèn)者IP地理位置的代碼詳解
利用google提供的API(JavaScript接口)獲取網(wǎng)站訪問(wèn)者IP地理位置2010-07-07
DOM操作原生js 的bug,使用jQuery 可以消除的解決方法
下面小編就為大家?guī)?lái)一篇DOM操作原生js 的bug,使用jQuery 可以消除的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
JavaScript數(shù)據(jù)結(jié)構(gòu)中串的表示與應(yīng)用實(shí)例
這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)中串的表示與應(yīng)用,結(jié)合實(shí)例形式簡(jiǎn)單分析了基于javascript順序操作實(shí)現(xiàn)串結(jié)構(gòu)與串的拼接操作相關(guān)技巧,需要的朋友可以參考下2017-04-04
微信瀏覽器內(nèi)置JavaScript對(duì)象WeixinJSBridge使用實(shí)例
這篇文章主要介紹了微信瀏覽器內(nèi)置JavaScript對(duì)象WeixinJSBridge使用實(shí)例,本文給出了分享到朋友圈、發(fā)送給好友、分享到騰訊微博、關(guān)注指定的微信號(hào)等功能代碼,需要的朋友可以參考下2015-05-05
JS一維數(shù)組轉(zhuǎn)多維數(shù)組樹(shù)的方法
這篇文章主要介紹了JS一維數(shù)組轉(zhuǎn)多維數(shù)組樹(shù)的方法,文章通過(guò)代碼示例給大家講解的非常詳細(xì),?對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-06-06
IE之動(dòng)態(tài)添加DOM節(jié)點(diǎn)觸發(fā)window.resize事件
因?yàn)轫?yè)面很多UI是絕對(duì)定位的,所以當(dāng)窗口大小改變的時(shí)候會(huì)使原先的布局混亂,只好在每次window.resize的時(shí)候重新布局...2010-07-07

