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

请问是语意变了吗,真心求指点
具体案例来自以下网址http://www.fgm.cc/learn/lesson8/02.html

慕码人8056858
浏览 532回答 3
3回答

繁星点点滴滴

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

开满天机

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

慕田峪9158850

&nbsp;不加()会出错,因为赋值运算等级最低,最后才执行,等价于 iL&nbsp;<=&nbsp;0&nbsp;&&&nbsp;iL&nbsp;=&nbsp;0 ==》 (iL&nbsp;<=&nbsp;0&nbsp;&&&nbsp;iL&nbsp;)=&nbsp;0 前面运算后为false false=0会报错 加括号就等价于 iL&nbsp;<=&nbsp;0&nbsp;&&&nbsp;(iL&nbsp;=&nbsp;0); ==> if(iL&nbsp;<=&nbsp;0&nbsp; )iL&nbsp;=&nbsp;0;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript