我经常在项目中看到这样的例子
function someFunction(n){
var data= n || 5;
return data
}
为什么或运算可以这样用来赋值呢?
我经常在项目中看到这样的例子
function someFunction(n){
var data= n || 5;
return data
}
为什么或运算可以这样用来赋值呢?
这个是利用了逻辑短路,A || B
,如果 A
为 true
,则不执行 B
。
逻辑与也可以短路:
function someFunction(n){
(n == 2) && (alert(123));
}
someFunction(2)//alert
someFunction(3)//no alert
n || 5
的意思是:如果n是null
、undefined
或者布尔false
的话,就返回5
,否则返回n
。
这是一种简化的写法,很常用,目的是最到js代码长度最小,因为像if
else
这样的关键字是不能被压缩的
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
首先你需要了解运算符的优先级,因为
||
的优先级高于=
,所以先执行后面的操作。又由于逻辑运算符||
的操作在JavaScript中比较特殊,MDN上是这么写的:如果是非布尔值的话是会直接返回判断真值的原值的,所以这样赋值是没有问题的。