||和&&执行过程
如果能说清楚下面代码的执行过程, 就没必要看了
//第一题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值, 则返回最后一个值
找优点,并且返回第一个优点,找不到返回最后一个缺点
第一题代码过程:
- 执行
0 || null || ""
,返回""
- 在
if(){}
中, ()内的内容需要转化为 true 和 false, 因为""
转化为 false, 所以打印出2
第三题解释:
- 如果 app 是 truely 值(如果别人之前定义 app, 就为 truely ),
var app = app
, - 如果 app 是 falsey 值(如果别人之前没有定义过 app, 就为 falsey),
var app = {}
- 作用是防止你覆盖别人之前定义的 app 变量