ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript の三項演算子を「=」演算子と一緒に使用すると動作が異なるのはなぜですか?

JavaScript の三項演算子を「=」演算子と一緒に使用すると動作が異なるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-29 22:41:03195ブラウズ

Why Does JavaScript's Ternary Operator Behave Differently When Used with the ` =` Operator?

JavaScript の三項演算子と演算子の優先順位

予期しない結果を回避するには、コード内で演算が実行される順序を理解することが重要です。 JavaScript では、三項演算子は、特に他の演算子と組み合わせる場合に共通の課題を提示します。

次のコード スニペットを考えてみましょう:

h.className += h.className ? ' error' : 'error'

コードは次のように動作すると想定できます。

h.className = h.className + h.className ? ' error' : 'error'

ただし、この解釈はコンソール エラーが発生するため、正しくありません。コードを正しく理解するには、演算子の優先順位を考慮することが不可欠です。

答え:

コードを理解する鍵は、演算子が三項演算子よりも優先されることを理解することです。オペレーター。したがって、コードは次のように評価されます:

h.className = h.className + (h.className ? ' error' : 'error')

この場合、演算子は h.className と三項演算子の結果を連結します。三項演算子は、h.className の真偽をチェックし、真の場合は「error」を返し、そうでない場合は「error」を返します。

混乱を避けるため、操作のターゲットについて明確にすることをお勧めします。この場合、かっこを使用して式をグループ化すると、意図したとおりに演算子が h.className に適用されます。

以上がJavaScript の三項演算子を「=」演算子と一緒に使用すると動作が異なるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。