in 演算子は、指定されたプロパティが指定されたオブジェクトにある場合に true を返します。
構文
prop in objectName
引数
prop- プロパティ名または配列のインデックスを表す文字列式またはシンボルです(シンボルではない場合は、文字列に強制変換されます)。
objectName- オブジェクトの名前です。
説明
次の例で in 演算子の使用法を示します。
// Arrays
var trees = ["redwood", "bay", "cedar", "oak", "maple"];
0 in trees // true を返す
3 in trees // true を返す
6 in trees // false を返す
"bay" in trees // false を返す (インデックスの指す値ではなく、
// インデックスの数字を指定しなければならない)
"length" in trees // true を返す (length は Array のプロパティ)
Symbol.iterator in trees // true を返す (配列は反復可能。ES2015 以上で動作する)
// 定義済みオブジェクト
"PI" in Math // true を返す
// ユーザ定義オブジェクト
var mycar = {make: "Honda", model: "Accord", year: 1998};
"make" in mycar // true を返す
"model" in mycar // true を返す
in 演算子の右側には、オブジェクトを指定しなければなりません。例えば、String コンストラクタで作成した文字列は指定できますが、文字列リテラルは指定できません。
var color1 = new String("green");
"length" in color1 // true を返す
var color2 = "coral";
"length" in color2 // エラーが発生 (color2 は String オブジェクトではありません)
削除済みあるいは未定義状態のプロパティへの in の使用
delete 演算子で削除されたプロパティについて、in 演算子は false を返します。
var mycar = {make: "Honda", model: "Accord", year: 1998};
delete mycar.make;
"make" in mycar; // false を返す
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
delete trees[3];
3 in trees; // false を返す
undefined を設定しているが削除されていないプロパティについて、in 演算子は true を返します。
var mycar = {make: "Honda", model: "Accord", year: 1998};
mycar.make = undefined;
"make" in mycar; // true を返す
var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
trees[3] = undefined;
3 in trees; // true を返す
継承されたプロパティ
プロトタイプチェインのプロパティについて、in 演算子は true を返します。
"toString" in {}; // true を返す
仕様
| 仕様 | ステータス | コメント |
|---|---|---|
| ECMAScript Latest Draft (ECMA-262) Relational Operators の定義 |
ドラフト | |
| ECMAScript 2015 (6th Edition, ECMA-262) Relational Operators の定義 |
標準 | |
| ECMAScript 5.1 (ECMA-262) The in Operator の定義 |
標準 | |
| ECMAScript 3rd Edition (ECMA-262) The in Operator の定義 |
標準 | 初期定義。JavaScript 1.4 で実装。 |
ブラウザ実装状況
現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。
この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。
手助けしていただける場合は、こちらから!
| 機能 | Chrome | Firefox (Gecko) | Edge | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| 基本サポート | (有) | (有) | (有) | (有) | (有) | (有) |
| 機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| 基本サポート | (有) | (有) | (有) | (有) | (有) | (有) |