首先我们来解释一下短路运算符:

短路运算符就是从左到右的运算中前者满足要求,就不再执行后者了; 可以理解为:

 &&为取假运算,从左到右依次判断,如果遇到一个假值,就返回假值,以后不再执行,否则返回最后一个真值;

|| 为取真运算,从左到右依次判断,如果遇到一个真值,就返回真值,以后不再执行,否则返回最后一个假值。

 下面举个例子吧:

let str

let num|| 'foo'

如果str是真值就直接返回了,后面短路就不会被返回了,如果为假值,则会返回后面的foo

 let str= param && param.prop

如果param如果为真值则返回param.prop属性,否则返回param这个假值,这样在某些地方防止param为undefined的时候还取其属性造成报错。