变量=== constant&和变量之间有什么区别?常量===变量

时间:2017-03-01 12:47:49

标签: javascript

我有以下代码片段按预期工作。其中x是变量

var myVariable = (x === 'A' || x=== 'B') ? 'sui' : 'pai';

但是闭包编译器正在将其转换为

var myVariable = ('A' === x || 'B'=== x) ? 'sui' : 'pai';

这也有效。请你告诉我第二个片段比第一个片段更好。谢谢。

1 个答案:

答案 0 :(得分:6)

人类程序员sometimes do this确保他们不会将=赋值运算符与等号==运算符混淆。

如果您错误地使用constant = variable而不是constant == variable,编译器或解释器将产生警告或错误。例如,Chrome就是这样做的:

> 'A' = x
VM207:1 Uncaught ReferenceError: Invalid left-hand side in assignment

我不确定为什么转换程序会打扰,因为如果它能够交换参数以防止运行时错误,它应该也足够聪明以产生相同的信息。在转型时发出警告。