ホームページ > 記事 > ウェブフロントエンド > 文字列の長さをチェックするときに JavaScript コードが誤動作するのはなぜですか?
JavaScript での等価比較を理解する
JavaScript で文字列を操作する場合、等価比較がどのように機能するかを理解することが重要です。次のコード スニペットは、指定された文字列が空白であるか、9 桁以下であるか、または 10 桁以下であるかを確認することを目的としています。ただし、スニペット内の条件ステートメントは予期しない結果をもたらします。
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."); }
入力文字列に関係なく、プログラムは一貫して「文字列の長さは少なくとも 9 文字である必要があります」と出力します。この動作は、等号比較で等号 (=) が誤って使用されていることが原因で発生します。
エラー: 代入と等号が混在しています
JavaScript では、等号 (=) ) は主に代入に使用され、等価比較には使用されません。等価比較は、二重等号 (==) または三重等号 (===) 演算子を使用して実行する必要があります。
等価比較の正しいコード:
正しいバージョンコード スニペットでは、次のように適切な等価演算子を使用する必要があります。
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."); }
修正されたコードでは、文字列の長さをチェックします。正しい演算子を使用し、文字列の内容に基づいて異なるメッセージを出力するという期待どおりの動作を提供します。
以上が文字列の長さをチェックするときに JavaScript コードが誤動作するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。