in

Did you know that you can read content offline by using one of these tools? If you would like to read offline MDN content in another format, let us know by commenting on Bug 665750.

Dash App
  • タグ
  • ファイル

概要

in 演算子は、指定されたプロパティが指定されたオブジェクトにある場合に true を返します。

演算子
実装されたバージョン JavaScript 1.4

構文

prop in objectName 

引数

prop
プロパティ名または配列のインデックスを表す文字列式または数値式です。
objectName
オブジェクトの名前です。

説明

次の例で in 演算子の使用法を示します。

// Arrays
var trees = new Array("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 のプロパティ)

// 定義済みオブジェクト
"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 を返す

関連情報