JavaScript條件(三元)運(yùn)算符的使用技巧

為啥用三元運(yùn)算符(ternary)

condition ? expr1 : expr2

三元運(yùn)算符用來(lái)簡(jiǎn)化條件判斷

這個(gè)運(yùn)算符可以用來(lái)代替if else條件判斷。但是為什么有這個(gè)運(yùn)算符呢?這里的原因是if else使用兩個(gè)代碼塊,確只有一個(gè)會(huì)執(zhí)行,在講究的程序員看來(lái)是一種浪費(fèi)。所以使用三元運(yùn)算符用一條語(yǔ)句就可以完成功能就很有吸引力了。我們來(lái)看看下面的例子

var i=0;
var fee;
if(isMember){
    fee="$2.00";
}else{
    fee="$10.00";
}
fee=isMember ? "$2.00" : "$10.00";

三元運(yùn)算符用來(lái)執(zhí)行多個(gè)操作

三元運(yùn)算符的結(jié)果語(yǔ)句可以執(zhí)行多個(gè)操作,每個(gè)操作用逗號(hào)分隔就可以

var age = 23;
var car,school;
age > 18 ? (
 car = "奇瑞QQ",
 school = "清華第一幼兒園"
    //do someting
) : (
 alert("Sorry, you are much too young!")
);

這樣也精簡(jiǎn)了不少代碼。

三元運(yùn)算符容易出錯(cuò)的地方

下面這個(gè)語(yǔ)句判斷如果是會(huì)員,費(fèi)用為2美元,非會(huì)員,為10美元?,F(xiàn)在設(shè)置了非會(huì)員,卻打印出了2美元,顯然出錯(cuò)了。

var isMember = false;
console.log("當(dāng)前費(fèi)用" + isMember ? "$2.00" : "$10.00");

出錯(cuò)的原因是?號(hào)的優(yōu)先級(jí)比+號(hào)低,所以實(shí)際運(yùn)行的語(yǔ)句是

"當(dāng)前費(fèi)用false" ? "$2.00" : "$10.00");

在js中,字符串為真,所以打印出$2.00。
不是false, 0, undefined, NaN, "" or null,js都認(rèn)為是true

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 標(biāo)簽: 我的筆記 ---學(xué)習(xí)資料:http://javascript.ruanyifeng.com/ 1. 導(dǎo)論 ...
    暗夜的怒吼閱讀 940評(píng)論 0 1
  • 一、php可以做什么 php是一種可以在服務(wù)器端運(yùn)行的編程語(yǔ)言,可以運(yùn)行在Web服務(wù)器端。 php是一門后臺(tái)編程語(yǔ)...
    空谷悠閱讀 3,277評(píng)論 4 97
  • 7. 第二天帕克早早地來(lái)到劇組,工作人員已經(jīng)進(jìn)進(jìn)出出地開(kāi)始搬運(yùn)道具布置場(chǎng)景了。 數(shù)十具殘缺的人體隨意地堆在空地上,...
    南呂婁未閱讀 686評(píng)論 0 1
  • 歌曲 余生相 歌手 伏儀 專輯 《硬骨見(jiàn)鹿集》 感受 這首歌我已經(jīng)單曲循環(huán)幾百遍了,我想,一定是有它的獨(dú)特...
    洵翕然閱讀 784評(píng)論 0 0
  • 我從小到大都喜歡幻想。 所以有時(shí)候我分不清幻想和想象的區(qū)別。對(duì)于我而言,好像都是在腦子里構(gòu)思,都是在用腦袋,構(gòu)建一...
    蹦極跳貓閱讀 194評(píng)論 0 0

友情鏈接更多精彩內(nèi)容