From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../javascript/reference/operators/in/index.html | 136 +++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 files/ru/web/javascript/reference/operators/in/index.html (limited to 'files/ru/web/javascript/reference/operators/in') diff --git a/files/ru/web/javascript/reference/operators/in/index.html b/files/ru/web/javascript/reference/operators/in/index.html new file mode 100644 index 0000000000..35ee2c4620 --- /dev/null +++ b/files/ru/web/javascript/reference/operators/in/index.html @@ -0,0 +1,136 @@ +--- +title: in operator +slug: Web/JavaScript/Reference/Operators/in +tags: + - JavaScript + - Оператор + - Оператор отношения +translation_of: Web/JavaScript/Reference/Operators/in +--- +
{{jsSidebar("Operators")}}
+ +

Оператор in возвращает true, если свойство содержится в указанном объекте или в его цепочке прототипов.

+ +

Синтаксис

+ +
prop in object
+ +

Параметры

+ +
+
prop
+
Строка или symbol, представляющий название свойства или индекс массива (non-symbols будут конвертированы в строки).
+
+ +
+
object
+
Объект, в котором нужно проверить содежание свойства с заданным именем.
+
+ +

Описание

+ +

В примере ниже показаны некоторые способы использования оператора 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
+
+ +

Если вы зададите свойству значение {{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("redwood", "bay", "cedar", "oak", "maple");
+trees[3] = undefined;
+3 in trees; // returns 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")}}

+ +

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

+ + -- cgit v1.2.3-54-g00ecf