aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/operators/in/index.html
blob: 5de860492ceaeeee7f389cf2969b4f42f8afdd11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
---
title: Оператор in
slug: Web/JavaScript/Reference/Operators/in
tags:
  - JavaScript
  - Оператор
translation_of: Web/JavaScript/Reference/Operators/in
---
<div>{{jsSidebar("Operators")}}</div>

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

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

<div class="hidden">
<p>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 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> and send us a pull request.</p>
</div>

<h2 id="Синтаксис">Синтаксис</h2>

<pre class="syntaxbox"><em>prop</em> in <em>objectName</em></pre>

<h3 id="Параметри">Параметри</h3>

<dl>
 <dt><code>prop</code></dt>
 <dd>Рядок або символ, що є іменем властивості або індексом масиву (не символи будуть приведені до рядка).</dd>
</dl>

<dl>
 <dt><code>objectName</code></dt>
 <dd>Об'єкт, у якому виконується перевірка того, чи він (або його ланцюжок прототипів) містить властивість з вказаним ім'ям.</dd>
</dl>

<h2 id="Опис">Опис</h2>

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

<pre class="brush:js">// Масиви
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
</pre>

<p>Необхідно вказати об'єкт справа від оператора <code>in</code>. Наприклад, можна вказати рядок, створений за допомогою конструктора <code>String</code>, але не можна вказувати рядковий літерал.</p>

<pre class="brush:js">var color1 = new String('зелений');
'length' in color1 // вертає true

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

<h3 id="Використання_in_з_властивостями_що_видалені_або_дорівнюють_undefined">Використання <code>in</code> з властивостями, що видалені або дорівнюють undefined</h3>

<p>Якщо видалити властивість оператором <code><a href="/uk/docs/Web/JavaScript/Reference/Operators/delete">delete</a></code>, оператор <code>in</code>  поверне <code>false</code> для цієї властивості.</p>

<pre class="brush:js">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
</pre>

<p>Якщо задати властивості значення {{jsxref("Global_Objects/undefined", "undefined")}}, але не видалити її, оператор <code>in</code> поверне true для цієї властивості.</p>

<pre class="brush:js">var mycar = {make: 'Honda', model: 'Accord', year: 1998};
mycar.make = undefined;
'make' in mycar;  // вертає true
</pre>

<pre class="brush:js">var trees = new Array('секвоя', 'лавр', 'кедр', 'дуб', 'клен');
trees[3] = undefined;
3 in trees; // вертає true
</pre>

<h3 id="Успадковані_властивості">Успадковані властивості</h3>

<p>Оператор <code>in</code> повертає <code>true</code> для властивостей з ланцюжка прототипів. (Якщо вам потрібно перевірити лише <em>не успадковані</em> властивості, скористайтесь методом {{jsxref("Object.prototype.hasOwnProperty()")}}.)</p>

<pre class="brush:js">'toString' in {}; // вертає true
</pre>

<h2 id="Специфікації">Специфікації</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Специфікація</th>
   <th scope="col">Статус</th>
   <th scope="col">Коментар</th>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-relational-operators', 'Relational Operators')}}</td>
   <td>{{Spec2('ESDraft')}}</td>
   <td></td>
  </tr>
  <tr>
   <td>{{SpecName('ES2015', '#sec-relational-operators', 'Relational Operators')}}</td>
   <td>{{Spec2('ES2015')}}</td>
   <td></td>
  </tr>
  <tr>
   <td>{{SpecName('ES5.1', '#sec-11.8.7', 'The in Operator')}}</td>
   <td>{{Spec2('ES5.1')}}</td>
   <td></td>
  </tr>
  <tr>
   <td>{{SpecName('ES3', '#sec-11.8.7', 'The in Operator')}}</td>
   <td>{{Spec2('ES3')}}</td>
   <td>Початкове визначення. Реалізоване у JavaScript 1.4.</td>
  </tr>
 </tbody>
</table>

<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>

<div class="hidden">
<p>The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
</div>

<p>{{Compat("javascript.operators.in")}}</p>

<div id="compat-mobile"></div>

<h2 id="Також_дивіться">Також дивіться</h2>

<ul>
 <li><code><a href="/uk/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a></code></li>
 <li><code><a href="/uk/docs/Web/JavaScript/Reference/Operators/delete">delete</a></code></li>
 <li>{{jsxref("Object.prototype.hasOwnProperty()")}}</li>
 <li>{{jsxref("Reflect.has()")}}</li>
 <li><a href="/uk/docs/Web/JavaScript/Перелічуваність_та_належність_властивостей">Перелічуваність та належність властивостей</a></li>
</ul>