Эта статья нуждается в редакционном обзоре. Как вы можете помочь.
Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.
Оператор in
возвращает true
если свойство содержится в указанном объекте.
Синтаксис
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 является свойством 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 // returns true var color2 = "coral"; // сгенерирует ошибку (color2 is not a String object) "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; // returns true
Наследуемые свойства
Оператор in возвратит true для свойств, которые унаследованы по цепочке прототипов.
"toString" in {}; // true
Спецификации
Спецификация | Статус | Комментарий |
---|---|---|
ECMAScript 1-е издание. | Standard | Определено изначально. Реализовано в JavaScript 1.4 |
ECMAScript 5.1 (ECMA-262) Определение 'The in Operator' в этой спецификации. |
Стандарт | |
ECMAScript 6 (ECMA-262) Определение 'Relational Operators' в этой спецификации. |
Кандидат в рекомендации |
Совместимость с браузерами
Особенность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) |
Особенность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |