昨天同事问我一个问题:
let a = { b: { c:1 }}复制代码
a && a.b &&a.b.c
是多少我说是1。为啥是1呢?我当时给她的解释为&&取交集这个三个元素的交集为最后一个啊???感觉解释是如此的有道理!!!后来发现我的解释是错误的!!!!!
我试着输出a &&a.b.c&&a.b
结果不是我想的那样。。。。结果是{c: 1}
I am wrong !!!
于是我网上搜了一波,总结如下:
ele1 && ele2 && ele3在进行与运算前先对每一项进行布尔运算 ,如果每一项都是true那么结果为最后一个元素!!
ele1 && ele2 && ele3在进行与运算前先对每一项进行布尔运算, 如果存在一项是false那么结果为false的那一项
由此那么|| 或运算的规则是:
ele1 && ele2 && ele3在进行或(||)运算前先对每一项进行布尔运算 ,如果每一项都是false那么结果为最后一个元素!!
ele1 && ele2 && ele3在进行或(||)运算前先对每一项进行布尔运算, 如果存在一项是true那么结果为true的那一项!!
来上栗子:a.b.c&&a.b&&a结果为{b:{c:1}}
null&&33结果为 null
null || 3333 结果为3333
null || undefined 结果为undefined
理解甚浅,还望大神补充~~~~~