in operator

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Оператор 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
Базовая поддержка (Да) (Да) (Да) (Да) (Да) (Да)

 

Смотрите также

Метки документа и участники

 Внесли вклад в эту страницу: Natalya_Surikova, Frenk1
 Обновлялась последний раз: Natalya_Surikova,