Javascript 变量===常量和;常数===变量

Javascript 变量===常量和;常数===变量,javascript,Javascript,我有下面这段代码,它按预期工作。其中x是一个变量 var myVariable = (x === 'A' || x=== 'B') ? 'sui' : 'pai'; 但闭包编译器正在将其转换为 var myVariable = ('A' === x || 'B'=== x) ? 'sui' : 'pai'; 你能告诉我第二段比第一段好多少吗。谢谢。人类程序员确保他们不会将=赋值运算符与相等=运算符混淆 如果错误地使用constant=variable而不是constant==variable

我有下面这段代码,它按预期工作。其中
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

我不知道为什么传输程序会这么麻烦,因为如果它足够聪明,能够交换参数以防止运行时错误,那么它也应该足够聪明,能够在传输时产生相同的警告。

请参阅。但在我看来,用一根线来捕捉这样的错误要好得多。@str谢谢。这个链接真的很有用