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

iL <= 0 && (iL = 0);这是JS截断求高人指点为何去除括号代码无效

iL <= 0 && (iL = 0);这是JS截断求高人指点为何去除括号代码无效

慕码人8056858 2019-04-19 17:15:46
请问是语意变了吗,真心求指点具体案例来自以下网址http://www.fgm.cc/learn/lesson8/02.html
查看完整描述

3 回答

?
繁星点点滴滴

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

楼上已经说了 赋值运算等级最低
没有括号的时候 iL <= 0 && iL = 0 最后才运算‘=’号,就会成把0复制给另一个值的运算了,所以不和语法,报错。
加了括号iL <= 0 && (iL = 0),会先执行括号,然后就是iL <= 0 &&0 来运算了 语法没错,先运算iL <= 0 如果是true 则就是true&&0 结果 0。
如果iL <= 0 运算出来是false,那么短路了 &&后面就不执行了,结果就是false!!!!

查看完整回答
反对 回复 2019-05-13
?
开满天机

TA贡献1786条经验 获得超13个赞

iL = 0不加括号,先执行iL <= 0,如果为假,不执行它
而有括号,那么先执行它,结果是iL <= 0必然为真,
不加括号相当于
if ( iL > 0) iL = 0;
加上括号相当于
iL = 0;
true;

查看完整回答
反对 回复 2019-05-13
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

 不加()会出错,因为赋值运算等级最低,最后才执行,等价于

iL <= 0 && iL = 0
==》
(iL <= 0 && iL )= 0
前面运算后为false
false=0会报错

加括号就等价于
iL <= 0 && (iL = 0);
==>
if(iL <= 0 
)iL = 0;


查看完整回答
反对 回复 2019-05-13
  • 3 回答
  • 0 关注
  • 531 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信