十二月已經(jīng)過(guò)半,冬季是一個(gè)美妙的季節(jié),寒冷的空氣逼得人們不得不躲在安逸舒適的環(huán)境里生活。冬季會(huì)給人一種安靜祥和的氛圍,讓人沉浸在其中,仿佛是一個(gè)舊的階段的結(jié)束,同時(shí)也是一個(gè)新的階段的開始。這么說(shuō)來(lái),西方和中國(guó)的圣誕節(jié)和春節(jié)都選擇在了冬季也不是沒有道理,在一年中最寒冷的時(shí)候,人們擁簇在溫暖的環(huán)境里,彼此訴說(shuō)著過(guò)去一年里自己的成就,展望著新的一年里美好的愿望,相互掛念的人團(tuán)聚,天氣的寒冷和人情的溫暖形成了強(qiáng)烈的對(duì)比。而在天寒地凍之中,仿佛更有利于人們思考,去探尋知識(shí)的真諦。

  這次想分享的是 JS 當(dāng)中的邏輯運(yùn)算符與、或,也就是 && 、 || ,初來(lái)乍到的同學(xué)們看到這里就會(huì)覺得沒趣了,這玩意有什么好分享的,剛開始學(xué) JS 的時(shí)候不就會(huì)了嗎,我用了無(wú)數(shù)遍都沒有什么問(wèn)題啊。而有經(jīng)驗(yàn)的同學(xué)可能會(huì)陷入沉思,難不成這其中會(huì)有什么奧秘所在?沒錯(cuò),別看這簡(jiǎn)簡(jiǎn)單單的幾個(gè)運(yùn)算符,雖然這是最基礎(chǔ)的知識(shí),但其中隱藏的奧秘卻十分耐人尋味,接下來(lái)我就為大家一一揭開這簡(jiǎn)答的運(yùn)算符背后的奇妙之處。

  基礎(chǔ)的作用我就不說(shuō)了,這兩個(gè)符號(hào)是個(gè)程序員都能明白,這里首先我想先來(lái)說(shuō)一說(shuō) JS 當(dāng)中的隱式轉(zhuǎn)換。

  眾所周知,JS 在做邏輯判斷的時(shí)候會(huì)自動(dòng)將非布爾類型的值進(jìn)行隱式轉(zhuǎn)換,轉(zhuǎn)換成布爾類型的值然后在進(jìn)行邏輯運(yùn)算。在初學(xué) JS 的時(shí)候,都會(huì)講到在隱式轉(zhuǎn)換中,除了幾個(gè)特定的假值,其他的均會(huì)轉(zhuǎn)換成真值,這些假值有:

1 NaN;2 "";3 undefined;4 null;5 0;

  有了這些隱式轉(zhuǎn)換的規(guī)則,便構(gòu)成了 JS 當(dāng)中邏輯運(yùn)算的核心基礎(chǔ)。

  其實(shí)在 JS 當(dāng)中,要說(shuō)“邏輯運(yùn)算符”其實(shí)并不完全正確,Kyle Simpson 在《You Don't Know JS》系列書當(dāng)中提到:“與其說(shuō)是‘邏輯運(yùn)算符’,不如說(shuō)是‘

網(wǎng)友評(píng)論