先比如
1 && "foo",输出结果是?
//foo
&&
表示与,要求左右两边都是true才是true,看起来条件比较严格,就比如平常的一些大事情,需要爸爸先同意,妈妈再同意才行,爸爸&&妈妈。都为true则返回最后一个“妈妈”,如果一开始爸爸就不同意,就走不到妈妈那一关,就直接在“爸爸”那里就被返回了。
||
表示或,要求左右两边任意一遍是true就是true,看起来条件比较松散,就比如平常的一些小事情,需要爸爸或者妈妈其中一个同意就行了,爸爸||妈妈。如果一开始爸爸就已经同意了,就直接在“爸爸”那里就可以返回了,无需再去询问妈妈,如果爸爸不同意,才去找妈妈那一关。
1 || "foo" && 0,输出结果是?
//1
1 && “foo” || 0,输出结果是?
//foo
在写代码中使用&&可以避免if嵌套。例如,需要使用对象里的数据,我们需要先判断这个数据存不存在,我们可能会这样做:
if (obj.data) { obj.data++ }
实际上,我们可以使用&&做一些简化:
obj.data && obj.data++