为了账号安全,请及时绑定邮箱和手机立即绑定

这个到底是赋值语句还是判断语句?

这个到底是赋值语句还是判断语句?

梵蒂冈之花 2019-04-08 11:19:22
我经常在项目中看到这样的例子functionsomeFunction(n){vardata=n||5;returndata}为什么或运算可以这样用来赋值呢?
查看完整描述

2 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

首先你需要了解运算符的优先级,因为||的优先级高于=,所以先执行后面的操作。又由于逻辑运算符||的操作在JavaScript中比较特殊,MDN上是这么写的:
expr1||expr2:Returnsexpr1ifitcanbeconvertedtotrue;otherwise,returnsexpr2.Thus,whenusedwithBooleanvalues,||returnstrueifeitheroperandistrue;ifbotharefalse,returnsfalse.-LogicalOperators
如果是非布尔值的话是会直接返回判断真值的原值的,所以这样赋值是没有问题的。
                            
查看完整回答
反对 回复 2019-04-08
?
慕森王

TA贡献1777条经验 获得超3个赞

这个是利用了逻辑短路,A||B,如果A为true,则不执行B。
逻辑与也可以短路:
functionsomeFunction(n){
(n==2)&&(alert(123));
}
someFunction(2)//alert
someFunction(3)//noalert
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 509 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号