in
オブジェクトが、指定されたプロパティを持つか否かを調べます。
文法
prop in objectName
引数 | 説明 |
---|---|
prop | プロパティ名または配列のインデックスを表す、文字列または数値の式を指定します。 |
objectName | オブジェクトの名前を指定します。 |
説明
下記は、in
演算子の使用例になります。
// 配列
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は配列のプロパティです)
// 予め定義されているオブジェクト
"PI" in Math // true
// カスタムオブジェクト
var mycar = {make: "Honda", model: "Accord", year: 1998};
"make" in mycar // true
"model" in mycar // true
演算子の右側には、オブジェクトを指定しなければいけません。
例えば、String
コンストラクタを使用して作成した文字列を指定することが出来ますが、
文字列リテラルを指定することは出来ません。
var color1 = new String("green");
"length" in color1 // true
var color2 = "coral";
// エラーを発生してみます。(color2は、String"オブジェクト"ではありません)
"length" in color2
削除済み、未定義のプロパティへの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
仕様
ブラウザ互換性
機能 | Chrome | Firefox (Gecko) |
IE | Opera | Safari |
---|---|---|---|---|---|
基本 | ◯ | ◯ | ◯ | ◯ | ◯ |
機能 | Android | Chrome for Android |
Firefox Mobile |
IE Mobile |
Opera Mobile |
Safari Mobile |
---|---|---|---|---|---|---|
基本 | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
関連項目
© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。
- 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
- 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
- MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
- "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。