ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript では空の配列が True にも False にも見えるのはなぜですか?

JavaScript では空の配列が True にも False にも見えるのはなぜですか?

Linda Hamilton
リリース: 2024-11-07 16:33:02
オリジナル
549 人が閲覧しました

Why Does an Empty Array Seem Both True and False in JavaScript?

JavaScript における空の配列の謎めいた性質を明らかにする

JavaScript の空の配列は、真であると同時に偽であるように見える独特の二重性を示します。この複雑な動作は、等価演算子によって実行される暗黙的な変換に起因します。基礎となるメカニズムを詳しく調べるために、以下のコード スニペットを見てみましょう:

<br>var arr = [];<br>console.log('Array:', arr);<br>if (arr) console.log("それは本当です!");<br>if (arr == false) console.log("それは false!");<br>if (arr && arr == false) コンソール.log("...what??");<br>

最初の if ステートメントは、arr オブジェクト (Array は Object のインスタンスです) の存在を検証し、true を返します。ただし、arr == false を指定した if ステートメントは、arr オブジェクトの値を false のプリミティブ値と比較します。この比較を実行するために、arr.toString() が暗黙的に呼び出され、空の文字列 "" が返されます。

この結果は、Array.join() の動作によって説明されます。 toString() が配列に対して呼び出されると、その配列に対して join() を呼び出した結果を連結して返します。配列が空であるため、結果は空の文字列になります。これは、JavaScript の偽値のカテゴリに分類されます。したがって、arr.toString() は false と評価され、if (arr == false) が true を返します。

if (arr && arr == false) の特殊なケースは、論理 AND ( &&) 演算子。ステートメント全体が真であるためには、両方の条件が真の値に評価される必要があります。 arr 自体は true ですが、前述の暗黙的な変換により、arr == false は true と評価されます。したがって、接続詞は true と評価され、一見矛盾した「偽です!」という結果になります。出力。

以上がJavaScript では空の配列が True にも False にも見えるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート