--- title: Оператор in slug: Web/JavaScript/Reference/Operators/in tags: - JavaScript - Оператор translation_of: Web/JavaScript/Reference/Operators/in ---
Оператор in повертає true, якщо вказана властивість присутня у вказаному об'єкті або у його ланцюжку прототипів.
{{EmbedInteractiveExample("pages/js/expressions-inoperator.html")}}
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
prop in objectName
propobjectNameНаступний приклад ілюструє деякі випадки використання оператора 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. |
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
{{Compat("javascript.operators.in")}}
for...indelete