我有以下代码片段可以按预期工作。哪里x
是变量
var myVariable = (x === 'A' || x=== 'B') ? 'sui' : 'pai';
但是闭包编译器正在将其转换为
var myVariable = ('A' === x || 'B'=== x) ? 'sui' : 'pai';
这也有效。你能告诉我第二个片段比第一个更好吗?谢谢你。
人类程序员有时这样做是为了确保他们不会将=
赋值运算符与相等==
运算符混淆。
如果constant = variable
错误地使用而不是constant == variable
编译器或解释器会产生警告或错误。例如,Chrome 会执行以下操作:
> 'A' = x
VM207:1 Uncaught ReferenceError: Invalid left-hand side in assignment
我不确定为什么转译器会打扰,因为如果它足够聪明能够交换参数以防止运行时错误,它也应该足够聪明以在转译时产生相同的警告。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句