ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で「0 in [1,2]」が True を返すのはなぜですか?

JavaScript で「0 in [1,2]」が True を返すのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-26 18:20:03691ブラウズ

Why Does

JavaScript の "in" 演算子を理解する

JavaScript の "in" 演算子は、プロパティまたはキーが存在するかどうかを確認するためによく使用されます。オブジェクトの中で。ただし、配列内に「0」が存在するかどうかをテストするときに、特有の動作が発生します。

問題: 予期しない真の結果

値「0」のない配列内" の場合、次の式は true と評価されます。

var x = [1,2];
0 in x;

配列内に「0」が目に見えて存在しないため、この結果は直観に反しているように見えます。

解決策: 値の比較ではなくインデックス付け

JavaScript の「in」演算子は、特定の値の存在をチェックしません。代わりに、プロパティまたはキーが存在するかどうかを確認します。配列の場合、インデックスはプロパティとみなされます。

したがって、上記の例では、「0」は配列のインデックスを指します。配列のインデックスは 0 であるため、インデックス "0" は有効かつ存在し、したがって真の結果になります。

直感的な例

この概念をさらに詳しく説明するには、次のようにします。

var x = [1,2];
1 in x; // true (index 1 exists)
2 in x; // false (index 2 does not exist)

動作の概要

JavaScript の「in」演算子は、主に配列を含むオブジェクト内のプロパティまたはキーの存在を確認するために使用されます。配列で使用すると、有効なインデックスが存在するかどうかがチェックされますが、それらのインデックスに格納されている特定の値はチェックされません。

以上がJavaScript で「0 in [1,2]」が True を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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