||和&&执行过程

如果能说清楚下面代码的执行过程, 就没必要看了

//第一题
if(0 || null || ""){
  console.log(1)
} else {
  console.log(2)
}

//第二题
//下面代码返回什么?
0 || null || "" 

//第三题
//下面代码是什么意思
var app = app || {}

需要的知识:

  • 5个 falsey 值: 数字0, NaN, "", undefined, null
  • || 基本不可能返回 true 或者 false (&& 类似,下同)
  • || 返回第一个 truely 值, 找到就停止执行下面的操作, 如果没有truely值, 则返回最后一个值 找优点,并且返回第一个优点,找不到返回最后一个缺点

第一题代码过程:

  1. 执行0 || null || "" ,返回""
  2. if(){}中, ()内的内容需要转化为 true 和 false, 因为""转化为 false, 所以打印出2

第三题解释:

  1. 如果 app 是 truely 值(如果别人之前定义 app, 就为 truely ), var app = app,
  2. 如果 app 是 falsey 值(如果别人之前没有定义过 app, 就为 falsey), var app = {}
  3. 作用是防止你覆盖别人之前定义的 app 变量

wojiaofengzhong
11 声望1 粉丝