逻辑中断#
逻辑运算符里的短路#
短路:只存在于&&和||中,当满足一定条件会让右边代码不执行
符号 | 短路条件 |
---|---|
&& | 左边为false就短路 |
|| | 左边为true就短路 |
原因:通过左边能够得到整个式子的结果,因此没必要再判断右边
运算结果:无论&&还是||,运算结果都是最后被执行的表达式值,一般用在变量赋值
JavaScriptconsole.log(false && 22) // false let age=18 console.log(false && age++) // false age++不执行,一假则假 console.log(undefined && 20) // undefined console.log(11 || age++) // 11 age++不执行,一真则真 console.log(11 && 22) // 22 都为真,返回最后一个真值 console.log(11 || 22) // 11 都为真,返回第一个真值
隐式转换#
有字符串的加法""+1,结果是"1"
减法-(与大多数数学运算相同)只能用于数字,它会使空字符串""转换为0
null经过数字转换之后会变为0
undefined经过数字转换之后会变为NaN