私はRhinoで遊んでいて、演算子の優先順位のように見えるこの奇妙な動作に気付きました:
js> {}+{}
NaN
js> ''+{}+{}
[object Object][object Object]
js> ''+({}+{})
[object Object][object Object]
最初に評価する必要があるため、式''+({}+{})
が に評価されることを期待しますが、これは起こりません。これを V8 と Firefox でテストしたところ、同じ結果が得られました。"NaN"
{}+{}
この場合、JavaScript が括弧に与えられた標準的な優先順位に従わないように見えるのはなぜですか (4*(1+2)
はまだ期待されてい12
ます)?