摘要:和操作符看到下面的式子,新人肯定認(rèn)為他們的值是或布爾的運(yùn)算難道不是或找第一個(gè)假值,如果沒(méi)有假值,返回最后一個(gè)真值找第一個(gè)真值,如果沒(méi)有真值,返回最后一個(gè)假值內(nèi)部不是簡(jiǎn)單的輸出或,因?yàn)槌藗€(gè)值之外其它指對(duì)來(lái)說(shuō)都是,所以剛開始接觸的時(shí)候會(huì)很迷惑
||和&&操作符
看到下面的式子,新人肯定認(rèn)為他們的值是true或false
a || b c && d
布爾的運(yùn)算難道不是true或false?
1 && 2 && 3 && 4 && 5 //5 1 && 0 && 2 && 3 && 4 && 5 //0 1 && 0 && console.log(3) //0
&&找第一個(gè)假值,如果沒(méi)有假值,返回最后一個(gè)真值
0 || undefined || 1 || null //1 0 || undefined || null //null
||找第一個(gè)真值,如果沒(méi)有真值,返回最后一個(gè)假值
Boolean 內(nèi)部不是簡(jiǎn)單的輸出true或false,因?yàn)槌?個(gè)falsy值之外其它指對(duì)Boolean 來(lái)說(shuō)都是true,所以剛開始接觸的時(shí)候會(huì)很迷惑。
明白了這些之后,可以利用這個(gè)特性做一些小技巧
var a = 1 //不合格代碼
做項(xiàng)目時(shí)不知道前面有沒(méi)定義a,這樣寫的話很容易除bug
所以在定義a時(shí)可以做一個(gè)判斷
var a = a || {} //如果前面有a,就用前面定義的a;如果前面沒(méi)有a,就用a = {}
等價(jià)于:
if(a){ a=a //如果a存在,就運(yùn)行a }else{ a={} //如果a不存在,把a(bǔ)賦值為{} }
等價(jià)于:
if(!window.a){ //寫成!a的話,如果a真的不存在,會(huì)報(bào)錯(cuò)。 a = {} }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/107921.html
摘要:一般情況下,在函數(shù)結(jié)束后,函數(shù)中變量等就應(yīng)該被銷毀,偏偏這個(gè)閉包就是個(gè)特例和中的和都保留著。同理,這個(gè)變量對(duì)應(yīng)的閉包保存了這個(gè)信息。由于退出了函數(shù)后,函數(shù)并沒(méi)有并銷毀,這個(gè)閉包的信息也沒(méi)銷毀,因此后續(xù)可以利用這些信息。 閉包的作用 一句話,閉包的作用:將方法存于變量。 至于閉包的原因或者目的,或者說(shuō),為什么將方法存于變量,稍后再說(shuō)。 閉包的條件 為了盡量避免用一大段話描述一個(gè)概念,我們...
摘要:一般情況下,在函數(shù)結(jié)束后,函數(shù)中變量等就應(yīng)該被銷毀,偏偏這個(gè)閉包就是個(gè)特例和中的和都保留著。同理,這個(gè)變量對(duì)應(yīng)的閉包保存了這個(gè)信息。由于退出了函數(shù)后,函數(shù)并沒(méi)有并銷毀,這個(gè)閉包的信息也沒(méi)銷毀,因此后續(xù)可以利用這些信息。 閉包的作用 一句話,閉包的作用:將方法存于變量。 至于閉包的原因或者目的,或者說(shuō),為什么將方法存于變量,稍后再說(shuō)。 閉包的條件 為了盡量避免用一大段話描述一個(gè)概念,我們...
摘要:是一門清晰簡(jiǎn)潔的語(yǔ)言,如果你對(duì)一些細(xì)節(jié)不了解的話,就會(huì)掉入到那些深不見(jiàn)底的坑里,下面,我就來(lái)總結(jié)一些里常見(jiàn)的坑。這是個(gè)很常見(jiàn)但很容易被忽略的一個(gè)坑。 Python是一門清晰簡(jiǎn)潔的語(yǔ)言,如果你對(duì)一些細(xì)節(jié)不了解的話,就會(huì)掉入到那些深不見(jiàn)底的坑里,下面,我就來(lái)總結(jié)一些Python里常見(jiàn)的坑。 列表創(chuàng)建和引用 嵌套列表的創(chuàng)建 使用*號(hào)來(lái)創(chuàng)建一個(gè)嵌套的list: li = [[]] ...
摘要:梯度下降算法梯度是個(gè)啥我想最開始接觸梯度的各位是在方向?qū)?shù)那一章接觸這一概念的,如果老師沒(méi)怎么講的話可能有些人還不知道梯度是個(gè)向量。在二維條件下,因?yàn)橛辛藘蓚€(gè)偏導(dǎo)數(shù),所以這個(gè)向量能表示一圈。 講你肯定能懂的機(jī)器學(xué)習(xí)多維極值求解事先說(shuō)明本文面向?qū)W習(xí)過(guò)高等數(shù)學(xué)統(tǒng)計(jì)學(xué)和線性代數(shù)基礎(chǔ)知識(shí)的本科生,并假設(shè)讀者擁有基本的矩陣運(yùn)算和求導(dǎo)運(yùn)算的相關(guān)知識(shí),類似梯度,方向?qū)?shù)、Hessian Matrix這些東...
閱讀 2847·2021-09-28 09:45
閱讀 1512·2021-09-26 10:13
閱讀 913·2021-09-04 16:45
閱讀 3672·2021-08-18 10:21
閱讀 1099·2019-08-29 15:07
閱讀 2642·2019-08-29 14:10
閱讀 3154·2019-08-29 13:02
閱讀 2471·2019-08-29 12:31