Оператор in

Оператор in повертає true, якщо вказана властивість присутня у вказаному об'єкті або у його ланцюжку прототипів.

Синтаксис

prop in objectName

Параметри

prop
Рядок або символ, що є іменем властивості або індексом масиву (не символи будуть приведені до рядка).
objectName
Об'єкт, у якому виконується перевірка того, чи він (або його ланцюжок прототипів) містить властивість з вказаним ім'ям.

Опис

Наступний приклад ілюструє деякі випадки використання оператора in.

// Масиви
var trees = ['секвоя', 'лавр', 'кедр', 'дуб', 'клен'];
0 in trees        // вертає true
3 in trees        // вертає true
6 in trees        // вертає false
'лавр' 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('зелений');
'length' in color1 // вертає true

var color2 = 'кораловий';
// генерує помилку (color2 не є об'єктом String)
'length' in color2

Використання in з властивостями, що видалені або дорівнюють undefined

Якщо видалити властивість оператором delete, оператор in  поверне false для цієї властивості.

var mycar = {make: 'Honda', model: 'Accord', year: 1998};
delete mycar.make;
'make' in mycar;  // вертає false

var trees = new Array('секвоя', 'лавр', 'кедр', 'дуб', 'клен');
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('секвоя', 'лавр', 'кедр', 'дуб', 'клен');
trees[3] = undefined;
3 in trees; // вертає true

Успадковані властивості

Оператор in повертає true для властивостей з ланцюжка прототипів. (Якщо вам потрібно перевірити лише не успадковані властивості, скористайтесь методом Object.prototype.hasOwnProperty().)

'toString' in {}; // вертає true

Специфікації

Сумісність з веб-переглядачами

BCD tables only load in the browser

Також дивіться