--- title: Оператор in slug: Web/JavaScript/Reference/Operators/in tags: - JavaScript - Оператор translation_of: Web/JavaScript/Reference/Operators/in ---
{{jsSidebar("Operators")}}

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

{{EmbedInteractiveExample("pages/js/expressions-inoperator.html")}}

Синтаксис

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

Якщо задати властивості значення {{jsxref("Global_Objects/undefined", "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 для властивостей з ланцюжка прототипів. (Якщо вам потрібно перевірити лише не успадковані властивості, скористайтесь методом {{jsxref("Object.prototype.hasOwnProperty()")}}.)

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

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

Специфікація Статус Коментар
{{SpecName('ESDraft', '#sec-relational-operators', 'Relational Operators')}} {{Spec2('ESDraft')}}
{{SpecName('ES2015', '#sec-relational-operators', 'Relational Operators')}} {{Spec2('ES2015')}}
{{SpecName('ES5.1', '#sec-11.8.7', 'The in Operator')}} {{Spec2('ES5.1')}}
{{SpecName('ES3', '#sec-11.8.7', 'The in Operator')}} {{Spec2('ES3')}} Початкове визначення. Реалізоване у JavaScript 1.4.

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

{{Compat("javascript.operators.in")}}

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