我经常在项目中看到这样的例子functionsomeFunction(n){vardata=n||5;returndata}为什么或运算可以这样用来赋值呢?
2 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
首先你需要了解运算符的优先级,因为||的优先级高于=,所以先执行后面的操作。又由于逻辑运算符||的操作在JavaScript中比较特殊,MDN上是这么写的:expr1||expr2:Returnsexpr1ifitcanbeconvertedtotrue;otherwise,returnsexpr2.Thus,whenusedwithBooleanvalues,||returnstrueifeitheroperandistrue;ifbotharefalse,returnsfalse.-LogicalOperators如果是非布尔值的话是会直接返回判断真值的原值的,所以这样赋值是没有问题的。
慕森王
TA贡献1777条经验 获得超3个赞
这个是利用了逻辑短路,A||B,如果A为true,则不执行B。逻辑与也可以短路:functionsomeFunction(n){(n==2)&&(alert(123));}someFunction(2)//alertsomeFunction(3)//noalert
添加回答
举报
0/150
提交
取消
