最簡約的前提運算

||&&操作符

看到下面的式子,新人一定以為他們的值是truefalse

a || b   c && d

布爾的運算豈非不是truefalse

1 && 2 && 3 && 4 && 5        //5 
1 && 0 && 2 && 3 && 4 && 5         //0
1 && 0 && console.log(3)    //0

&&找第一個假值,假如沒有假值,返回末了一個真值

0 || undefined || 1 || null         //1
0 || undefined || null         //null

||找第一個真值,假如沒有真值,返回末了一個假值

Boolean 內部不是簡樸的輸出truefalse,由於除了5個falsy值以外別的指對Boolean 來講都是true,所以剛開始打仗的時刻會很疑惑。

邃曉了這些以後,能夠應用這個特徵做一些小技能

var a = 1        //不合格代碼

做項目時不知道前面有沒定義a,如許寫的話很輕易除bug

所以在定義a時能夠做一個推斷

var a = a || {}     //假如前面有a,就用前面定義的a;假如前面沒有a,就用a = {}

等價於:

if(a){
    a=a        //假如a存在,就運轉a
}else{
    a={}    //假如a不存在,把a賦值為{}
}

等價於:

if(!window.a){        //寫成!a的話,假如a真的不存在,會報錯。
    a = {}
}
    原文作者:UCCs
    原文地址: https://segmentfault.com/a/1190000015150076
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞