if(xx)和 a==b的判斷

if(xx)的判斷

if語句是編程語言最常用的語句,語法:

if(condition){
    //true statement
}else {
    //false statement
}

if通過布爾值判斷結(jié)果,如果表達式為真執(zhí)行第一個代碼塊內(nèi)語句,如果為假執(zhí)行第二個代碼塊內(nèi)語句,其中condition可以是任意表達式,當condition不為布爾值時,會將condition強制轉(zhuǎn)換為布爾值,如:

if(0) {
console.log('0')
}else if(1) {
console.log('1')
}
if(''){
console.log("no")
}else if(" ") {
console.log("empty")
}

輸出結(jié)果

if(0)為false,if(1)為true,輸出結(jié)果為1,if("")為false,if(" ")為true,輸出結(jié)果為empty。

為什么?

Number為+0, ?0,或者 NaN 時為 false,其他為 true,所以第一個輸出1;
String是空字符串為 false,其他都為 true,所以第二個輸出結(jié)果為empty;
轉(zhuǎn)換為布爾值后if通過結(jié)果的false或true判斷是輸出還是執(zhí)行下一個語句。

a==b

一、a和b的數(shù)值和類型都相同時

a==b,當a和b的數(shù)值和類型都相同時,嚴格的執(zhí)行相等的運算。

二、當a和b的數(shù)值類型不相同

a==b,當a和b的數(shù)值類型不相同時:
1.如果a和b一個是null,一個是undefined時,相等。
2.如果a和b一個是數(shù)字,一個是字符串,先將字符串轉(zhuǎn)為數(shù)字,然后比較。
3.如果a和b一個值是true,一個值是false則將其轉(zhuǎn)為1和0比較。
4.如果a和b一個值是對象,一個是數(shù)字或字符串,則嘗試使用valueOf和toString轉(zhuǎn)換后比較。
5.其它情況都不相等。

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

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

  • 一、if(xx) 如果括號內(nèi)是布爾類型,直接判斷。否則括號里的表達式會被強制轉(zhuǎn)換成布爾類型,轉(zhuǎn)換規(guī)則如下:1.un...
    我才是大田田閱讀 386評論 0 1
  • if(xx) 對于if(xx),是把xx轉(zhuǎn)換成boolean在進行判斷各類型轉(zhuǎn)換布爾結(jié)果: a==b 對于a==b...
    海山城閱讀 480評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,328評論 0 17
  • 1、今天共修,我有個問題一直在和lb討論,想搞清楚,同修L突然說:別說了,說的都是沒用的,沒在點上。我當時很不悅,...
    李信蘭閱讀 584評論 0 0

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