学过JS的朋友们应该都知道这俩个运算符(“||” 和 “&&”)的名字 - - 短路运算符。
今天我们就来看一看它究竟是怎么个短路法!
一:在if判断中的用法:
||的用法:
if (2 > 1 || 2 > 5) {
console.log('CSDN吴小迪');
}
“||”的用法是如果前面的表达式满足了那么就不会再走到下一个表达式,之间就会进入到if的执行语句中。(PS:{}里面的内容为执行语句内容)
如果说俩个条件都不满足那么就不会走进这个执行语句当中去。
&&的用法:
if (2 > 1 && 2 > 6) {
console.log('CSDN吴小迪');
}
“&&”的用法是如果前面的表达式满足了,那么再去判断下一个,只有全部的表达式满足条件了才会进入到if的执行语句中。
上面的代码虽然2>1是满足的,但是2>6是不满足的,所以是不会进入到if的执行语句中的。
二:简化三目运算符和if语句:
实战场景模拟:
我们有一个变量是用来接收localStorage里面的数据的,但是如果说localStorage里面没有数据那么我们就给他赋予一个空数组。
用三目运算符我们可以这么来写:
let localStorageMessage = (localStorage.getItem('test'))? localStorage.getItem('test'): [];
如果说用短路运算符我们可以这么写:
let localStorageMessage = localStorage.getItem('test') || [];
这样在前面一个值取回的为空的时候就会默认赋值为[]了。
关于“||”和“&&”妙用的秘诀大家只要记住它的执行顺序即可:
- &&运算符在前一个表达式为true的时候才会继续往下一个走。否就止步于此。
- ||运算符在前一个表达式为true的时候就直接止步于此了。只有当前一个表达式为false的时候才会继续往下走。
相信大家对“||”和“&&”已经有了一个全新的认知了,那么我们一起来做几个小题目来测试一下,看看究竟有没有完全理解,先不要着急到最下面看答案哦~
- 1 && 0 答案是???
- 0 && 1 答案是???
- 1 && 2 答案是???
- 0 && false 答案是???
- 1 || 0 答案是???
- 0 || 1 答案是???
- 1 || 2 答案是???
- 0 || false 答案是???
请分别在你的本本上写出上面的答案哦~~下方有正确答案,写完了可以看看你有没有全答对呢?
答案分别为:
- 0
- 0
- 2
- 0
- 1
- 1
- 1
- false
你如果还是记不住它的执行流程是如何的那也可以这样记:
关于&&
从前至后的顺序去遍历表达式,遇到false的表达式停止并返回此表达式。如果全都为true,那么就返回最后一个。
关于||
从前至后的顺序去遍历表达式,遇到true的表达式停止并返回此表达式。如果全都为false,那么就返回最后一个。