2017-10-03 6 views
-2

なぜOR演算子の方が、ほとんどの演算子よりも優先順位が高く、かっこが強くなるのだろうかと思います。なぜOR演算子の優先度が高いのですか

if (!player.slowTimeAcive || frameCount % 2 === 0) { 
    // framecount evaluated as truethy 
}  

if (!player.slowTimeAcive || (frameCount % 2 === 0)) { 
    // forced parentheses 
}  
+2

あなたの前提が間違っています。 '||'演算子[より低い優先度を持つ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence)あなたの式の中の他のすべての演算子他のほとんどの演算子よりも)。この例ではカッコで違いはありません。 – nnnnnn

+0

言語を設計した人々がそれをそのようにしたからです。なぜそれが行われたのかについての推測は何かを変えますか?それでも同じ優先順位があります。 –

+0

私はタイプミスをしました... –

答えて

1

この例の||は、かっこを必要としません。

JS hereのすべての演算子の優先順位について読むことができます。

あなたは可読性を高めるために、または例えば、高い優先度1の上に、優先度の低いオペレータをもたらすために、括弧を使用する必要があります。

var a = 10; 
var b = false; 
var c = 9; 
(a||b) >= c 
//evaluates to true 

をと比較した:

var a = 10; 
var b = false; 
var c = 9; 
a||b >= c 
//evaluates to 10 
関連する問題