if() & a==b的判斷

if語句

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

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

其中condition可以是任意表達(dá)式,結(jié)果不一定是布爾值袱箱,JavaScript解釋器會(huì)自動(dòng)調(diào)用Boolean()將表達(dá)式結(jié)果轉(zhuǎn)為布爾值遏乔,如果表達(dá)式為真,執(zhí)行第一個(gè)代碼塊內(nèi)語句犯眠,如果為假按灶,執(zhí)行第二個(gè)代碼塊內(nèi)語句。

例如:

var a = 3筐咧;
if(a === 1){
  console.log('ok')
}else{
  console.log('not ok')
}//輸出結(jié)果為not ok

當(dāng)轉(zhuǎn)換成boolean類型時(shí)遵循下列規(guī)則:

  • 如果表達(dá)式的值是一個(gè)對(duì)象鸯旁,返回true
  • 如果表達(dá)式的值是一個(gè)空字符串,返回false
  • 如果表達(dá)式的值是一個(gè)非空字符串量蕊,返回true
  • 如果表達(dá)式的值是數(shù)值0铺罢,或NaN,返回false
  • 如果表達(dá)式的值是任意非零數(shù)值(包括Infinity)残炮,返回true
  • 如果表達(dá)式的值是null韭赘,返回false
  • 如果表達(dá)式的值是undefined,返回false

示例:

/* 字符串 */
if ("hello") {
  console.log("true");
} // true

if ("") {
  console.log("true");
} // true

if (" ") {
  console.log("true");
} // true

if ("0.00") {
  console.log("true");
} // true

/* 數(shù)值 */
if (0.00) {
  console.log("true");
} // false

/* 對(duì)象 */
if ({}) {
  console.log("true");
} // true

if ([]) {
  console.log("true");
} // true

a==b相等運(yùn)算符

相等運(yùn)算符用來比較相同類型的數(shù)據(jù)時(shí)势就,與嚴(yán)格相等運(yùn)算符完全一樣泉瞻。

比較不同類型的數(shù)據(jù)時(shí)脉漏,相等運(yùn)算符會(huì)先將數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換,然后再用嚴(yán)格相等運(yùn)算符比較袖牙。類型轉(zhuǎn)換規(guī)則如下:

(1)原始類型的值

原始類型的數(shù)據(jù)會(huì)轉(zhuǎn)換成數(shù)值類型再進(jìn)行比較侧巨。

1 == true // true
// 等同于 1 === Number(true)

0 == false // true
// 等同于 0 === Number(false)

2 == true // false
// 等同于 2 === Number(true)

2 == false // false
// 等同于 2 === Number(false)

'true' == true // false
// 等同于 Number('true') === Number(true)
// 等同于 NaN === 1

'' == 0 // true
// 等同于 Number('') === 0
// 等同于 0 === 0

'' == false  // true
// 等同于 Number('') === Number(false)
// 等同于 0 === 0

'1' == true  // true
// 等同于 Number('1') === Number(true)
// 等同于 1 === 1

'\n  123  \t' == 123 // true
// 因?yàn)樽址D(zhuǎn)為數(shù)字時(shí),省略前置和后置的空格

上面代碼將字符串和布爾值都轉(zhuǎn)為數(shù)值鞭达,然后再進(jìn)行比較司忱。

(2)對(duì)象與原始類型值比較

對(duì)象(這里指廣義的對(duì)象,包括數(shù)組和函數(shù))與原始類型的值比較時(shí)畴蹭,對(duì)象轉(zhuǎn)化成原始類型的值坦仍,再進(jìn)行比較。

[1] == 1 // true
// 等同于 Number([1]) == 1

[1] == '1' // true
// 等同于 Number([1]) == Number('1')

[1] == true // true
// 等同于 Number([1]) == Number(true)

上面代碼中叨襟,數(shù)組[1]與數(shù)值進(jìn)行比較繁扎,會(huì)先轉(zhuǎn)成數(shù)值,再進(jìn)行比較糊闽;與字符串進(jìn)行比較锻离,會(huì)先轉(zhuǎn)成數(shù)值,然后再與字符串進(jìn)行比較墓怀,這時(shí)字符串也會(huì)轉(zhuǎn)成數(shù)值;與布爾值進(jìn)行比較卫键,兩個(gè)運(yùn)算子都會(huì)先轉(zhuǎn)成數(shù)值傀履,然后再進(jìn)行比較。

(3)undefined 和 null

undefinednull與其他類型的值比較時(shí)莉炉,結(jié)果都為false钓账,它們互相比較時(shí)結(jié)果為true

false == null // false
false == undefined // false

0 == null // false
0 == undefined // false

undefined == null // true

絕大多數(shù)情況下絮宁,對(duì)象與undefinednull比較梆暮,都返回false。只有在對(duì)象轉(zhuǎn)為原始值得到undefined時(shí)绍昂,才會(huì)返回true啦粹,這種情況是非常罕見的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末窘游,一起剝皮案震驚了整個(gè)濱河市唠椭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌忍饰,老刑警劉巖贪嫂,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異艾蓝,居然都是意外死亡力崇,警方通過查閱死者的電腦和手機(jī)斗塘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亮靴,“玉大人馍盟,你說我怎么就攤上這事√ê铮” “怎么了朽合?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)饱狂。 經(jīng)常有香客問我曹步,道長(zhǎng),這世上最難降的妖魔是什么休讳? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任讲婚,我火速辦了婚禮,結(jié)果婚禮上俊柔,老公的妹妹穿的比我還像新娘筹麸。我一直安慰自己,他們只是感情好雏婶,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布物赶。 她就那樣靜靜地躺著,像睡著了一般留晚。 火紅的嫁衣襯著肌膚如雪酵紫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天错维,我揣著相機(jī)與錄音奖地,去河邊找鬼。 笑死赋焕,一個(gè)胖子當(dāng)著我的面吹牛参歹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播隆判,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼犬庇,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了蜜氨?” 一聲冷哼從身側(cè)響起械筛,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎飒炎,沒想到半個(gè)月后埋哟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年赤赊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了闯狱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抛计,死狀恐怖哄孤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吹截,我是刑警寧澤瘦陈,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站波俄,受9級(jí)特大地震影響晨逝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜懦铺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一捉貌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧冬念,春花似錦趁窃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至裆针,卻和暖如春统求,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背据块。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留折剃,地道東北人另假。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像怕犁,于是被迫代替她去往敵國(guó)和親边篮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)奏甫,也就是一...
    悟名先生閱讀 4,118評(píng)論 0 13
  • 運(yùn)算符是處理數(shù)據(jù)的基本方法戈轿,用來從現(xiàn)有的值得到新的值。JavaScript 提供了多種運(yùn)算符阵子,本章逐一介紹這些運(yùn)算...
    許先生__閱讀 596評(píng)論 0 3
  • 運(yùn)算符是處理數(shù)據(jù)的基本方法思杯,用來從現(xiàn)有的值得到新的值。JavaScript 提供了多種運(yùn)算符,本章逐一介紹這些運(yùn)算...
    徵羽kid閱讀 659評(píng)論 0 0
  • 第5章 引用類型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,212評(píng)論 0 4
  • 周末回來色乾,父母一直說隔壁又有誰誰要結(jié)婚了誊册,那個(gè)誰誰給孩子過滿月,來了好多人暖璧,坐了四五趟案怯。原本打算和父母一起去吃酒席...
    不會(huì)老師閱讀 224評(píng)論 0 0