aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/statements/for...of/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ru/web/javascript/reference/statements/for...of/index.html')
-rw-r--r--files/ru/web/javascript/reference/statements/for...of/index.html36
1 files changed, 18 insertions, 18 deletions
diff --git a/files/ru/web/javascript/reference/statements/for...of/index.html b/files/ru/web/javascript/reference/statements/for...of/index.html
index 5d056de8c4..7641d14bad 100644
--- a/files/ru/web/javascript/reference/statements/for...of/index.html
+++ b/files/ru/web/javascript/reference/statements/for...of/index.html
@@ -16,7 +16,7 @@ translation_of: Web/JavaScript/Reference/Statements/for...of
<h2 id="Синтаксис">Синтаксис</h2>
-<pre class="syntaxbox notranslate">for (<em>variable</em> of <em>iterable</em>) {
+<pre class="syntaxbox">for (<em>variable</em> of <em>iterable</em>) {
<em>statement</em>
}
</pre>
@@ -32,7 +32,7 @@ translation_of: Web/JavaScript/Reference/Statements/for...of
<h3 id="Обход_jsxrefArray">Обход {{jsxref("Array")}}</h3>
-<pre class="notranslate"><code>let iterable = [10, 20, 30];
+<pre><code>let iterable = [10, 20, 30];
for (let value of iterable) {
value += 1;
@@ -44,7 +44,7 @@ for (let value of iterable) {
<p>Можно также использовать <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const"><code>const</code></a> вместо <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let"><code>let</code></a>, если не нужно переназначать переменные внутри блока.</p>
-<pre class="notranslate"><code>let iterable = [10, 20, 30];
+<pre><code>let iterable = [10, 20, 30];
for (const value of iterable) {
console.log(value);
@@ -55,7 +55,7 @@ for (const value of iterable) {
<h3 id="Обход_jsxrefString">Обход {{jsxref("String")}}</h3>
-<pre class="notranslate"><code>let iterable = 'boo';
+<pre><code>let iterable = 'boo';
for (let value of iterable) {
console.log(value);
@@ -66,7 +66,7 @@ for (let value of iterable) {
<h3 id="Обход_jsxrefTypedArray">Обход {{jsxref("TypedArray")}}</h3>
-<pre class="notranslate"><code>let iterable = new Uint8Array([0x00, 0xff]);
+<pre><code>let iterable = new Uint8Array([0x00, 0xff]);
for (let value of iterable) {
console.log(value);
@@ -76,7 +76,7 @@ for (let value of iterable) {
<h3 id="Обход_jsxrefMap">Обход {{jsxref("Map")}}</h3>
-<pre class="notranslate"><code>let iterable = new Map([['a', 1], ['b', 2], ['c', 3]]);
+<pre><code>let iterable = new Map([['a', 1], ['b', 2], ['c', 3]]);
for (let entry of iterable) {
console.log(entry);
@@ -94,7 +94,7 @@ for (let [key, value] of iterable) {
<h3 id="Обход_jsxrefSet">Обход {{jsxref("Set")}}</h3>
-<pre class="notranslate"><code>let iterable = new Set([1, 1, 2, 2, 3, 3]);
+<pre><code>let iterable = new Set([1, 1, 2, 2, 3, 3]);
for (let value of iterable) {
console.log(value);
@@ -105,7 +105,7 @@ for (let value of iterable) {
<h3 id="Обход_объекта_jsxrefarguments">Обход объекта {{jsxref("arguments")}} </h3>
-<pre class="notranslate"><code>(function() {
+<pre><code>(function() {
for (let argument of arguments) {
console.log(argument);
}
@@ -119,7 +119,7 @@ for (let value of iterable) {
<p>Обход DOM коллекций наподобие {{domxref("NodeList")}}: следующий пример добавляет класс <code>read</code> параграфам, являющимся непосредственными потомками статей:</p>
-<pre class="notranslate"><code>// Примечание: работает только на платформах, где
+<pre><code>// Примечание: работает только на платформах, где
// реализован NodeList.prototype[Symbol.iterator]
let articleParagraphs = document.querySelectorAll('article &gt; p');
@@ -131,7 +131,7 @@ for (let paragraph of articleParagraphs) {
<p>В циклах <code>for...of</code>  аварийный выход осуществляется через <code>break</code>, <code>throw</code> или <code>return</code>. Во всех вариантах итератор завершается.</p>
-<pre class="notranslate"><code>function* foo(){
+<pre><code>function* foo(){
yield 1;
yield 2;
yield 3;
@@ -147,7 +147,7 @@ for (let o of foo()) {
<p>Вы можете выполнять обход <a href="/en-US/docs/Web/JavaScript/Reference/Statements/function*">генераторов</a>, вот пример:</p>
-<pre class="brush:js notranslate">function* fibonacci() { // функция-генератор
+<pre class="brush:js">function* fibonacci() { // функция-генератор
let [prev, curr] = [0, 1];
for (;;) {
[prev, curr] = [curr, prev + curr];
@@ -167,7 +167,7 @@ for (let n of fibonacci()) {
<p>Генераторы нельзя использовать дважды, даже если цикл <code>for...of </code> завершится аварийно, например, через оператор {{jsxref("Statements/break", "break")}} . При выходе из цикла генератор завершается, и любые попытки получить из него значение обречены.</p>
-<pre class="brush: js example-bad notranslate"><code>var gen = (function *(){
+<pre class="brush: js example-bad"><code>var gen = (function *(){
yield 1;
yield 2;
yield 3;
@@ -186,7 +186,7 @@ for (let o of gen) {
<p>Кроме того, можно сделать обход объекта, явно реализующего <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable">iterable</a>:</p>
-<pre class="notranslate"><code>var iterable = {
+<pre><code>var iterable = {
[Symbol.iterator]() {
return {
i: 0,
@@ -217,7 +217,7 @@ for (var value of iterable) {
<p>Следующий пример показывает различия в работе циклов <code>for...of</code> и <code>for...in</code> при обходе {{jsxref("Array")}}.</p>
-<pre class="notranslate"><code>Object.prototype.objCustom = function() {};
+<pre><code>Object.prototype.objCustom = function() {};
Array.prototype.arrCustom = function() {};
let iterable = [3, 5, 7];
@@ -239,7 +239,7 @@ for (let i of iterable) {
<p>Разберёмся шаг за шагом в вышеописанном коде.</p>
-<pre class="notranslate"><code>Object.prototype.objCustom = function() {};
+<pre><code>Object.prototype.objCustom = function() {};
Array.prototype.arrCustom = function() {};
let iterable = [3, 5, 7];
@@ -247,13 +247,13 @@ iterable.foo = 'hello';</code></pre>
<p>Каждый объект унаследует метод <code>objCustom</code> и каждый массив {{jsxref("Array")}} унаследует метод <code>arrCustom</code> благодаря созданию их в {{jsxref("Object.prototype")}} и {{jsxref("Array.prototype")}}. Объект <code>iterable</code> унаследует методы <code>objCustom</code> и <code>arrCustom</code> из-за <a href="/ru/docs/Web/JavaScript/Inheritance_and_the_prototype_chain">наследования через прототип</a>.</p>
-<pre class="notranslate"><code>for (let i in iterable) {
+<pre><code>for (let i in iterable) {
console.log(i); // выведет 0, 1, 2, "foo", "arrCustom", "objCustom"
}</code></pre>
<p>Цикл выводит только <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Enumerability_and_ownership_of_properties">перечисляемые свойства</a> объекта <code>iterable</code>, в порядке их создания. Он не выводит <strong>значения</strong> <code>3</code>, <code>5</code>, <code>7</code> и <code>hello</code> поскольку они <strong>не являются</strong> перечисляемыми, фактически они вообще не являются свойствами, они являются <strong>значениями</strong>. Выводятся же <strong>имена свойств и методов</strong>, например <code>arrCustom</code> и <code>objCustom</code>. Если вы ещё не совсем поняли, по каким свойствам осуществляется обход, вот дополнительное объяснение того, как работает {{jsxref("Statements/for...in", "array iteration and for...in", "#Array_iteration_and_for...in")}} .</p>
-<pre class="notranslate"><code>for (let i in iterable) {
+<pre><code>for (let i in iterable) {
if (iterable.hasOwnProperty(i)) {
console.log(i); // выведет 0, 1, 2, "foo"
}
@@ -261,7 +261,7 @@ iterable.foo = 'hello';</code></pre>
<p>Цикл аналогичен предыдущему, но использует {{jsxref("Object.prototype.hasOwnProperty()", "hasOwnProperty()")}} для проверки того, собственное ли это свойство объекта или унаследованное. Выводятся только собственные свойства. Имена <code>0</code>, <code>1</code>, <code>2</code> и <code>foo</code> принадлежат только экземпляру объекта (<strong>не унаследованы</strong>). Методы <code>arrCustom</code> и <code>objCustom</code> не выводятся, поскольку они <strong>унаследованы</strong>.</p>
-<pre class="notranslate"><code>for (let i of iterable) {
+<pre><code>for (let i of iterable) {
console.log(i); // выведет 3, 5, 7
}</code></pre>