2017-03-01 3 views
2

変数===定数&定数===どのようなものです。 xは、変数変数の違いは、私が期待通りに動作し、この次のスニペットを持って

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

である。しかし閉鎖コンパイラは

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

に変換され、これが第二のスニペットが最初のものよりも優れているどのようにあなたが私に教えてくださいworking.Canもです。ありがとうございました。

+2

[ヨーダ条件](https://en.wikipedia.org/wiki/Yoda_conditions)を参照。しかし、私の意見では、リンターを使ってこれらのような間違いを捉えるほうがはるかに優れています。 – str

+0

@strありがとうございます。リンクは本当に役立ちます – brk

答えて

6

人間プログラマsometimes do this=代入演算子と等価の==演算子を混同しないようにしてください。

constant == variableの代わりにconstant = variableを間違えて使用すると、コンパイラまたはインタプリタは警告またはエラーを生成します。 Chromeは、例えば、この行います

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

transpilerが気にする理由、それはまたあるべき実行時エラーを防ぐために、引数を交換することができるように十分賢いかどう以来、私は、わからないんだけど蒸留時間に同じ警告を発するのに十分なほど賢い。

関連する問題