ホームページ > 記事 > ウェブフロントエンド > 私の JavaScript コードが比較ではなく割り当てを行うのはなぜですか?
JavaScript における等価比較を理解する
JavaScript では、特に単一の等号 (= を使用する場合) の等価比較が混乱の原因となることがよくあります。 )。元の質問で提供されたコード スニペットが期待どおりに動作しない理由を詳しく調べてみましょう。
割り当ての役割
単一の等号 (=)等価比較ではなく、代入に使用されます。その結果、次のように記述すると、
if (str = '')
実際には、変数 'str' の値が等しいかどうかをチェックするのではなく、空の文字列を代入することになります。
等価比較演算子
JavaScript で値の等価性を比較するには、緩やかな比較 (型強制を許可) の場合は 2 つの等号 (==) を使用するか、厳密な比較の場合は 3 つの等号 (===) を使用する必要があります。比較 (型強制なし)。
コードの再確認
単一の等号を 2 つまたは 3 つの等号に置き換えると、目的の比較が確実に実行されます。
if (str === '') { console.log("The string cannot be blank"); } else if (str.length <= 9) { console.log("The string must be at least 9 characters long"); } else if (str.length <= 10) { console.log("The string is long enough."); }
修正の説明
この場合 === (厳密比較) を使用すると、'str' の値が空の文字列と比較されることが保証され、割り当てエラー。その結果、コードは文字列が空白であるか、長さが 9 以下であるか、または長さが 10 までであるかを正確に判断します。
以上が私の JavaScript コードが比較ではなく割り当てを行うのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。