diff options
| author | Alexey Istomin <webistomin@gmail.com> | 2021-03-20 18:37:44 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-20 18:37:44 +0300 |
| commit | 841aae260382e2bf5ebb44d765d8c7301d27caab (patch) | |
| tree | 81a92c25f6dc02e5f119131785d721db79fc3455 /files/ru/web/javascript/reference/statements | |
| parent | 730fea852ff827ca034fe17c84288c95d270ec92 (diff) | |
| download | translated-content-841aae260382e2bf5ebb44d765d8c7301d27caab.tar.gz translated-content-841aae260382e2bf5ebb44d765d8c7301d27caab.tar.bz2 translated-content-841aae260382e2bf5ebb44d765d8c7301d27caab.zip | |
Restore "ё" letter in Russian translation (#239)
* docs(ru): restore ё letter
* docs(ru): resolve conflicts
* refactor(idea): remove ide folder
Diffstat (limited to 'files/ru/web/javascript/reference/statements')
17 files changed, 52 insertions, 52 deletions
diff --git a/files/ru/web/javascript/reference/statements/async_function/index.html b/files/ru/web/javascript/reference/statements/async_function/index.html index 966ea49b80..a956f73e66 100644 --- a/files/ru/web/javascript/reference/statements/async_function/index.html +++ b/files/ru/web/javascript/reference/statements/async_function/index.html @@ -81,7 +81,7 @@ add2(10).then(v => { <div class="warning"> <h4 id="Не_путайте_await_и_Promise.all">Не путайте await и Promise.all</h4> -<p>Функция <code>add1</code> приостанавливается на 2 секунды для первого <code>await</code> и еще на 2 для второго. Второй таймер создается только после срабатывания первого. В функции <code>add2</code> создаются оба и оба же переходят в состояние <code>await</code>. В результате функция <code>add2</code> завершится скорее через две, чем через четыре секунды, поскольку таймеры работают одновременно. Однако запускаются они все же не параллельно, а друг за другом - такая конструкция не означает автоматического использования <code>Promise.all</code>. Если два или более Promise должны разрешаться параллельно, следует использовать <code>Promise.all</code>.</p> +<p>Функция <code>add1</code> приостанавливается на 2 секунды для первого <code>await</code> и ещё на 2 для второго. Второй таймер создаётся только после срабатывания первого. В функции <code>add2</code> создаются оба и оба же переходят в состояние <code>await</code>. В результате функция <code>add2</code> завершится скорее через две, чем через четыре секунды, поскольку таймеры работают одновременно. Однако запускаются они все же не параллельно, а друг за другом - такая конструкция не означает автоматического использования <code>Promise.all</code>. Если два или более Promise должны разрешаться параллельно, следует использовать <code>Promise.all</code>.</p> </div> <h3 id="Когда_функция_async_выбрасывает_исключение">Когда функция <code>async </code>выбрасывает исключение</h3> @@ -136,7 +136,7 @@ throwsValue() } </pre> -<p>Заметьте, что пример выше не содержит <code>await</code> на <code>return</code>, потому что возвращаемое значение функции <code>async</code> неявно обернуто в {{jsxref("Promise.resolve")}}.</p> +<p>Заметьте, что пример выше не содержит <code>await</code> на <code>return</code>, потому что возвращаемое значение функции <code>async</code> неявно обёрнуто в {{jsxref("Promise.resolve")}}.</p> <h2 id="Спецификации">Спецификации</h2> @@ -165,7 +165,7 @@ throwsValue() <h2 id="Поддержка_браузерами">Поддержка браузерами</h2> <div> -<div class="hidden">Таблица совместимости на этой странице создается из структурированных данных. Если вы хотите внести свой вклад, ознакомьтесь с <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправить нам pull request.</div> +<div class="hidden">Таблица совместимости на этой странице создаётся из структурированных данных. Если вы хотите внести свой вклад, ознакомьтесь с <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправить нам pull request.</div> <p>{{Compat("javascript.statements.async_function")}}</p> </div> diff --git a/files/ru/web/javascript/reference/statements/block/index.html b/files/ru/web/javascript/reference/statements/block/index.html index a6fb564aa7..c6d34377df 100644 --- a/files/ru/web/javascript/reference/statements/block/index.html +++ b/files/ru/web/javascript/reference/statements/block/index.html @@ -41,13 +41,13 @@ original_slug: Web/JavaScript/Reference/Statements/Блок <p>Обратите внимание, что блок инструкций не заканчивается точкой с запятой.</p> -<p>Блок инструкций часто называется <strong>сложной (составной) инструкцией</strong> в других языках. Он позволяет вам использовать несколько операторов там, где JavaScript ожидает один оператор. Помещение инструкций в блок - это распространенная практика в JavaScript. Противоположное поведение - использование <a href="/en-US/docs/Web/JavaScript/Reference/Statements/Empty">пустого оператора</a> там, где никаких действий не нужно, а оператор требуется.</p> +<p>Блок инструкций часто называется <strong>сложной (составной) инструкцией</strong> в других языках. Он позволяет вам использовать несколько операторов там, где JavaScript ожидает один оператор. Помещение инструкций в блок - это распространённая практика в JavaScript. Противоположное поведение - использование <a href="/en-US/docs/Web/JavaScript/Reference/Statements/Empty">пустого оператора</a> там, где никаких действий не нужно, а оператор требуется.</p> <h3 id="Правила_области_видимости_блока">Правила области видимости блока</h3> <h4 id="С_использованием_var">С использованием <code>var</code></h4> -<p>Переменные, объявленные через <code>var</code>, <strong>не</strong> <strong>имеют</strong> блочной области видимости. Переменные, введенные внутри блока, имеют областью видимости содержащую их функцию или скрипт, и последствия записи в них значения распространяются за границы, собственно, блока, в котором они объявлены. Другими словами, блок инструкций не вводит новую область видимости. Хотя "отдельно стоящие" блоки не являются нарушением синтаксиса, не стоит использовать отдельно стоящие блоки в JavaScript, потому что они не делают то, чего вы от них ожидаете, если вы ожидаете, что они будут себя вести аналогично блокам в C или Java. Например:</p> +<p>Переменные, объявленные через <code>var</code>, <strong>не</strong> <strong>имеют</strong> блочной области видимости. Переменные, введённые внутри блока, имеют областью видимости содержащую их функцию или скрипт, и последствия записи в них значения распространяются за границы, собственно, блока, в котором они объявлены. Другими словами, блок инструкций не вводит новую область видимости. Хотя "отдельно стоящие" блоки не являются нарушением синтаксиса, не стоит использовать отдельно стоящие блоки в JavaScript, потому что они не делают то, чего вы от них ожидаете, если вы ожидаете, что они будут себя вести аналогично блокам в C или Java. Например:</p> <pre class="brush: js example-bad">var x = 1; { diff --git a/files/ru/web/javascript/reference/statements/class/index.html b/files/ru/web/javascript/reference/statements/class/index.html index 6e772f9c6a..507c13cb10 100644 --- a/files/ru/web/javascript/reference/statements/class/index.html +++ b/files/ru/web/javascript/reference/statements/class/index.html @@ -5,7 +5,7 @@ translation_of: Web/JavaScript/Reference/Statements/class --- <div>{{jsSidebar("Statements")}}</div> -<p><strong>Class declaration</strong> создает новый класс с данным именем на основе прототипного наследования.</p> +<p><strong>Class declaration</strong> создаёт новый класс с данным именем на основе прототипного наследования.</p> <div class="noinclude"> <p>Можно так же определить класс, используя {{jsxref("Operators/class", "class expression", "", 1)}}. Но в отличие от class expression, class declaration не позволяет снова объявить уже существующий класс, это <strong>приведёт к ошибке типа</strong>.</p> @@ -54,7 +54,7 @@ class Square extends Polygon { class Foo {}; // Uncaught TypeError: Identifier 'Foo' has already been declared </pre> -<p>Та же ошибка будет вызвана, если класс был определен перед использованием class declaration.</p> +<p>Та же ошибка будет вызвана, если класс был определён перед использованием class declaration.</p> <pre class="brush: js notranslate">var Foo = class {}; class Foo {}; // Uncaught TypeError: Identifier 'Foo' has already been declared diff --git a/files/ru/web/javascript/reference/statements/do...while/index.html b/files/ru/web/javascript/reference/statements/do...while/index.html index f6707b4b04..6a2aa31f07 100644 --- a/files/ru/web/javascript/reference/statements/do...while/index.html +++ b/files/ru/web/javascript/reference/statements/do...while/index.html @@ -5,7 +5,7 @@ translation_of: Web/JavaScript/Reference/Statements/do...while --- <div>{{jsSidebar("Statements")}}</div> -<p>Выражение <strong><code>do...while</code></strong> создает цикл, который выполняет указанное выражение до тех пор, пока условие не станет ложным. Условие проверяется после выполнения выражения, то есть выражение выполнится как минимум один раз.</p> +<p>Выражение <strong><code>do...while</code></strong> создаёт цикл, который выполняет указанное выражение до тех пор, пока условие не станет ложным. Условие проверяется после выполнения выражения, то есть выражение выполнится как минимум один раз.</p> <p>{{EmbedInteractiveExample("pages/js/statement-dowhile.html")}}</p> @@ -23,7 +23,7 @@ while (<em>условие</em>); <dl> <dt><code>условие</code></dt> - <dd>Выражение, которое вычисляется после каждого шага цикла. Если <code>условие</code> истинно, то <code>выражение</code> выполняется еще раз. Когда <code>условие</code> ложно, выполняется выражение, следующее после <code>do...while</code>.</dd> + <dd>Выражение, которое вычисляется после каждого шага цикла. Если <code>условие</code> истинно, то <code>выражение</code> выполняется ещё раз. Когда <code>условие</code> ложно, выполняется выражение, следующее после <code>do...while</code>.</dd> </dl> <h2 id="Примеры">Примеры</h2> diff --git a/files/ru/web/javascript/reference/statements/empty/index.html b/files/ru/web/javascript/reference/statements/empty/index.html index 3792c035bc..64aee27def 100644 --- a/files/ru/web/javascript/reference/statements/empty/index.html +++ b/files/ru/web/javascript/reference/statements/empty/index.html @@ -39,7 +39,7 @@ console.log(arr) killTheUniverse() // Это всегда выполняется!!! </pre> -<p>Другой пример: <a href="/ru/docs/Web/JavaScript/Reference/Statements/if...else"><code>if...else</code></a> без фигурных скобок (<code>{}</code>). Если <code>three</code> истинно, ничего не произойдет, <code>four</code> не важна, и функция <code>launchRocket()</code> тоже не запустится.</p> +<p>Другой пример: <a href="/ru/docs/Web/JavaScript/Reference/Statements/if...else"><code>if...else</code></a> без фигурных скобок (<code>{}</code>). Если <code>three</code> истинно, ничего не произойдёт, <code>four</code> не важна, и функция <code>launchRocket()</code> тоже не запустится.</p> <pre class="brush: js">if (one) doOne(); diff --git a/files/ru/web/javascript/reference/statements/for-await...of/index.html b/files/ru/web/javascript/reference/statements/for-await...of/index.html index 9ed679ace7..d5a6b93e35 100644 --- a/files/ru/web/javascript/reference/statements/for-await...of/index.html +++ b/files/ru/web/javascript/reference/statements/for-await...of/index.html @@ -77,7 +77,7 @@ translation_of: Web/JavaScript/Reference/Statements/for-await...of // 1 // 2</pre> -<p>Для более конкретного примера перебора асинхронного генератора с помощью <code>for await... of</code>, рассмотрим перебор данных из API. В этом примере сначала создается асинхронный итератор для потока данных, а затем он используется для определения размера ответа от API.</p> +<p>Для более конкретного примера перебора асинхронного генератора с помощью <code>for await... of</code>, рассмотрим перебор данных из API. В этом примере сначала создаётся асинхронный итератор для потока данных, а затем он используется для определения размера ответа от API.</p> <pre class="brush: js">async function* streamAsyncIterator(stream) { const reader = stream.getReader(); diff --git a/files/ru/web/javascript/reference/statements/for...in/index.html b/files/ru/web/javascript/reference/statements/for...in/index.html index 24d7434f81..18ffee0e24 100644 --- a/files/ru/web/javascript/reference/statements/for...in/index.html +++ b/files/ru/web/javascript/reference/statements/for...in/index.html @@ -29,7 +29,7 @@ translation_of: Web/JavaScript/Reference/Statements/for...in <h3 id="Удаление_добавление_и_модификация_свойств">Удаление, добавление и модификация свойств</h3> -<p>Цикл <code>for...in</code> проходит по свойствам в произвольном порядке (см. оператор {{jsxref("Operators/delete", "delete")}} для того, чтобы узнать почему порядок прохода может отличаться в зависимости от браузера). Если свойство изменяется за одну итерацию, а затем изменяется снова, его значением в цикле является его последнее значение. Свойство, удаленное до того, как до него дошёл цикл, не будет участвовать в нём. Свойства добавленные в объекты в цикле могут быть пропущены. В общем, лучше не добавлять, изменять или удалять свойство из объекта во время итерации, если по нему ещё не прошли. Нет гарантии, что добавленное свойство будет посещено циклом, низменное после проведения изменений, а удалённое после удаления.</p> +<p>Цикл <code>for...in</code> проходит по свойствам в произвольном порядке (см. оператор {{jsxref("Operators/delete", "delete")}} для того, чтобы узнать почему порядок прохода может отличаться в зависимости от браузера). Если свойство изменяется за одну итерацию, а затем изменяется снова, его значением в цикле является его последнее значение. Свойство, удалённое до того, как до него дошёл цикл, не будет участвовать в нём. Свойства добавленные в объекты в цикле могут быть пропущены. В общем, лучше не добавлять, изменять или удалять свойство из объекта во время итерации, если по нему ещё не прошли. Нет гарантии, что добавленное свойство будет посещено циклом, низменное после проведения изменений, а удалённое после удаления.</p> <h3 id="Проход_по_массиву_и_for...in"><code>Проход по массиву и for...in</code></h3> 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 fdf8799529..cd4447e59f 100644 --- a/files/ru/web/javascript/reference/statements/for...of/index.html +++ b/files/ru/web/javascript/reference/statements/for...of/index.html @@ -213,7 +213,7 @@ for (var value of iterable) { <p>Для {{jsxref("Statements/for...in", "for...in")}} обход <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Enumerability_and_ownership_of_properties" title="перечисляемые свойства">перечисляемых свойств</a> объекта осуществляется в произвольном порядке.</p> -<p>Для <code>for...of</code> обход происходит в соответствии с тем, какой порядок определен в <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/iterable">итерируемом объекте</a>.</p> +<p>Для <code>for...of</code> обход происходит в соответствии с тем, какой порядок определён в <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/iterable">итерируемом объекте</a>.</p> <p>Следующий пример показывает различия в работе циклов <code>for...of</code> и <code>for...in</code> при обходе {{jsxref("Array")}}.</p> @@ -237,7 +237,7 @@ for (let i of iterable) { console.log(i); // выведет 3, 5, 7 }</code></pre> -<p>Разберемся шаг за шагом в вышеописанном коде.</p> +<p>Разберёмся шаг за шагом в вышеописанном коде.</p> <pre class="notranslate"><code>Object.prototype.objCustom = function() {}; Array.prototype.arrCustom = function() {}; @@ -251,7 +251,7 @@ iterable.foo = 'hello';</code></pre> 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> +<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) { if (iterable.hasOwnProperty(i)) { diff --git a/files/ru/web/javascript/reference/statements/for/index.html b/files/ru/web/javascript/reference/statements/for/index.html index 6b394ef5a5..080e4e8c61 100644 --- a/files/ru/web/javascript/reference/statements/for/index.html +++ b/files/ru/web/javascript/reference/statements/for/index.html @@ -52,7 +52,7 @@ for (; i < 9; i++) { } </pre> -<p>Как и блок инициализации, блок условия не обязателен. Если пропустите это выражение, вы должны быть уверены, что прервете цикл где-то в теле, а не создадите бесконечный цикл.</p> +<p>Как и блок инициализации, блок условия не обязателен. Если пропустите это выражение, вы должны быть уверены, что прервёте цикл где-то в теле, а не создадите бесконечный цикл.</p> <pre class="brush: js">for (var i = 0;; i++) { console.log(i); diff --git a/files/ru/web/javascript/reference/statements/import/index.html b/files/ru/web/javascript/reference/statements/import/index.html index d301e39327..99911d4f33 100644 --- a/files/ru/web/javascript/reference/statements/import/index.html +++ b/files/ru/web/javascript/reference/statements/import/index.html @@ -46,7 +46,7 @@ import("/module-name.js").then(module => {…}) // Динамический <dt><code>module-name</code></dt> <dd>Имя модуля для импорта. Это зачастую относительный или абсолютный путь к <code>.js</code> файлу модуля без указания расширения <code>.js</code>. Некоторые сборщики могут разрешать или даже требовать использования расширения; проверяйте своё рабочее окружение. Допускаются только строки с одиночными или двойными кавычками.</dd> <dt><code>name</code></dt> - <dd>Имя локального объекта, который будет использован как своего рода пространство имен, ссылающееся на импортируемые значения.</dd> + <dd>Имя локального объекта, который будет использован как своего рода пространство имён, ссылающееся на импортируемые значения.</dd> </dl> <dl> @@ -61,7 +61,7 @@ import("/module-name.js").then(module => {…}) // Динамический <h2 id="Описание">Описание</h2> -<p>Параметр <code>name</code> это имя локального объекта, который будет использован как своего рода пространство имен, ссылающееся на импортируемые значения. Параметры <code>export</code> определяют отдельные именованные значения, в то время как <code>import * as name</code> импортирует все значения. Примеры ниже объясняют синтаксис.</p> +<p>Параметр <code>name</code> это имя локального объекта, который будет использован как своего рода пространство имён, ссылающееся на импортируемые значения. Параметры <code>export</code> определяют отдельные именованные значения, в то время как <code>import * as name</code> импортирует все значения. Примеры ниже объясняют синтаксис.</p> <h3 id="Импорт_всего_содержимого_модуля">Импорт всего содержимого модуля</h3> @@ -69,13 +69,13 @@ import("/module-name.js").then(module => {…}) // Динамический <pre class="brush: js">import * as <em>myModule</em> from '/modules/my-module.js';</pre> -<p>В данном случае, доступ к импортируемым значениям можно осуществить с использованием имени модуля (в данном случае "myModule") в качестве пространства имен. Например, если импортируемый выше модуль включает в себя экспорт метода <code>doAllTheAmazingThings()</code>, вы можете вызвать его так:</p> +<p>В данном случае, доступ к импортируемым значениям можно осуществить с использованием имени модуля (в данном случае "myModule") в качестве пространства имён. Например, если импортируемый выше модуль включает в себя экспорт метода <code>doAllTheAmazingThings()</code>, вы можете вызвать его так:</p> <pre class="brush: js">myModule.doAllTheAmazingThings();</pre> <h3 id="Импорт_единичного_значения_из_модуля">Импорт единичного значения из модуля</h3> -<p>Определенное ранее значение, названное <code>myExport,</code> которое было экспортировано из модуля <code>my-module</code> либо неявно (если модуль был экспортирован целиком), либо явно (с использованием инструкции {{jsxref("Statements/export", "export")}}), позволяет вставить <code>myExport</code> в текущую область видимости.</p> +<p>Определённое ранее значение, названное <code>myExport,</code> которое было экспортировано из модуля <code>my-module</code> либо неявно (если модуль был экспортирован целиком), либо явно (с использованием инструкции {{jsxref("Statements/export", "export")}}), позволяет вставить <code>myExport</code> в текущую область видимости.</p> <pre class="brush: js">import {myExport} from '/modules/my-module.js';</pre> @@ -85,7 +85,7 @@ import("/module-name.js").then(module => {…}) // Динамический <pre class="brush: js">import {foo, bar} from '/modules/my-module.js';</pre> -<h3 id="Импорт_значений_с_использованием_более_удобных_имен">Импорт значений с использованием более удобных имен</h3> +<h3 id="Импорт_значений_с_использованием_более_удобных_имён">Импорт значений с использованием более удобных имён</h3> <p>Вы можете переименовать значения, когда импортируете их. Например, этот код вставляет <code>shortName</code> в текущую область видимости.</p> @@ -117,10 +117,10 @@ import("/module-name.js").then(module => {…}) // Динамический <pre class="brush: js">import myDefault from '/modules/my-module.js'; </pre> -<p>Возможно также использование такого синтаксиса с другими вариантами из перечисленных выше (импорт пространства имен или именованный импорт). В таком случае, импорт значения по умолчанию должен быть определён первым. Для примера:</p> +<p>Возможно также использование такого синтаксиса с другими вариантами из перечисленных выше (импорт пространства имён или именованный импорт). В таком случае, импорт значения по умолчанию должен быть определён первым. Для примера:</p> <pre class="brush: js">import myDefault, * as myModule from '/modules/my-module.js'; -// myModule использовано как пространство имен</pre> +// myModule использовано как пространство имён</pre> <p>или</p> diff --git a/files/ru/web/javascript/reference/statements/let/index.html b/files/ru/web/javascript/reference/statements/let/index.html index 2f38f7e7ca..df2a17de02 100644 --- a/files/ru/web/javascript/reference/statements/let/index.html +++ b/files/ru/web/javascript/reference/statements/let/index.html @@ -87,7 +87,7 @@ for (var i = 1; i <= 5; i++) { <p>Пример выше будет выполнен как и ожидается, так как пять экземпляров внутренней функции (анонимной) будут ссылаться на пять разных экземпляров переменной <code>i</code>. Пример будет выполнен неверно, если заменить директиву <code>let</code> на <code>var,</code> или удалить переменную <code>i</code> из параметров вложенной функции и использовать внешнюю переменную <code>i</code> во внутренней функции.</p> -<p id="Правила_области_видимости">На верхнем уровне скриптов и функций <code>let, в отличии от var, не создает свойства на глобальном объекте</code>. Например:</p> +<p id="Правила_области_видимости">На верхнем уровне скриптов и функций <code>let, в отличии от var, не создаёт свойства на глобальном объекте</code>. Например:</p> <pre class="brush:js">var x = 'global_x'; let y = 'global_y'; @@ -130,16 +130,16 @@ console.log(privateScope.hiddenProperty); // error</pre> <p>Эта техника позволяет получить только "статичное" приватное состояние - в примере выше, все экземпляры полученные из конструктора <code>SomeConstructor</code> будут ссылаться на одну и ту же область видимости <code>privateScope</code>.</p> -<h3 id="Временные_мертвые_зоны_и_ошибки_при_использовании_let">Временные мертвые зоны и ошибки при использовании <code>let</code></h3> +<h3 id="Временные_мёртвые_зоны_и_ошибки_при_использовании_let">Временные мёртвые зоны и ошибки при использовании <code>let</code></h3> -<p>Повторное объявление той же переменной в том же блоке или функции приведет к выбросу исключения <a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError">SyntaxError</a>.</p> +<p>Повторное объявление той же переменной в том же блоке или функции приведёт к выбросу исключения <a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError">SyntaxError</a>.</p> <pre class="brush: js">if (x) { let foo; let foo; // SyntaxError thrown. }</pre> -<p>В стандарте ECMAScript 2015 переменные, объявленные директивой let, переносятся в начало блока. Но если вы сошлетесь в блоке на переменную, до того как она объявлена директивой let, то это приведет к выбросу исключения <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/ReferenceError" title="TypeError">ReferenceError</a></code>, потому что переменная находится во "временной мертвой зоне" с начала блока и до места ее объявления. (В отличии от переменной, объявленной через <code>var</code>, которая просто будет содержать значение <code>undefined</code>)</p> +<p>В стандарте ECMAScript 2015 переменные, объявленные директивой let, переносятся в начало блока. Но если вы сошлётесь в блоке на переменную, до того как она объявлена директивой let, то это приведёт к выбросу исключения <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/ReferenceError" title="TypeError">ReferenceError</a></code>, потому что переменная находится во "временной мёртвой зоне" с начала блока и до места её объявления. (В отличии от переменной, объявленной через <code>var</code>, которая просто будет содержать значение <code>undefined</code>)</p> <pre class="brush: js"><code>function do_something() { console.log(bar); // undefined @@ -175,7 +175,7 @@ for ( let i=i ; i < 10 ; i++ ) { <pre class="brush: js">for (let <var>expr1</var>; <var>expr2</var>; <var>expr3</var>) <var>statement</var> </pre> -<p>В этом примере <var>expr2</var>, <var>expr3, statement </var> заключены в неявный блок, который содержит блок локальных переменных, объявленных конструкцией <code>let <em>expr1</em></code>. Пример приведен выше.</p> +<p>В этом примере <var>expr2</var>, <var>expr3, statement </var> заключены в неявный блок, который содержит блок локальных переменных, объявленных конструкцией <code>let <em>expr1</em></code>. Пример приведён выше.</p> <h2 id="Примеры">Примеры</h2> @@ -224,7 +224,7 @@ console.log(i); // i is not defined</pre> <h4 id="Описание_2">Описание</h4> -<p><strong><code>let</code> </strong>блок предоставляет локальную область видимости для переменных. Работа его заключается в привязке нуля или более переменных к области видимости этого блока кода, другими словами, он является блоком операторов. Отметим, что область видимости переменных, объявленных директивой <code>var</code>, в <strong>блоке <code>let</code></strong>, будет той же самой, что и если бы эти переменные были объявлены вне <strong>блока <code>let</code></strong>, иными словами областью видимости таких переменных по-прежнему является функция. Скобки в<strong> блоке </strong><code><strong>let</strong></code> являются обязательными. Опускание их приведет к синтаксической ошибке.</p> +<p><strong><code>let</code> </strong>блок предоставляет локальную область видимости для переменных. Работа его заключается в привязке нуля или более переменных к области видимости этого блока кода, другими словами, он является блоком операторов. Отметим, что область видимости переменных, объявленных директивой <code>var</code>, в <strong>блоке <code>let</code></strong>, будет той же самой, что и если бы эти переменные были объявлены вне <strong>блока <code>let</code></strong>, иными словами областью видимости таких переменных по-прежнему является функция. Скобки в<strong> блоке </strong><code><strong>let</strong></code> являются обязательными. Опускание их приведёт к синтаксической ошибке.</p> <h4 id="Пример">Пример</h4> @@ -408,7 +408,7 @@ console.log(a); // 5</pre> <ul> <li>До SpiderMonkey 46 {{geckoRelease(46)}} выбрасывал {{jsxref("TypeError")}} на повторное объявление, вместо {{jsxref("SyntaxError")}} ({{bug(1198833)}}).</li> - <li>До SpiderMonkey 44 {{geckoRelease(44)}}, <code>let</code> был доступен только для блоков кода обернутых в HTML <code><script type="application/javascript;version=1.7"></code>block (or higher version) и имел другую семантику.</li> - <li>Поддержка в {{domxref("Worker")}} код спрятан за <code>dom.workers.latestJSVersion</code> флагом ({{bug(487070)}}). Без версии <code>let</code>, флаг будет удален в будущем ({{bug(1219523)}}).</li> + <li>До SpiderMonkey 44 {{geckoRelease(44)}}, <code>let</code> был доступен только для блоков кода обёрнутых в HTML <code><script type="application/javascript;version=1.7"></code>block (or higher version) и имел другую семантику.</li> + <li>Поддержка в {{domxref("Worker")}} код спрятан за <code>dom.workers.latestJSVersion</code> флагом ({{bug(487070)}}). Без версии <code>let</code>, флаг будет удалён в будущем ({{bug(1219523)}}).</li> <li>Соблюдение стандарта ES2015 для <code>let</code> в SpIderMonkey отслеживается в {{bug(950547)}}</li> </ul> diff --git a/files/ru/web/javascript/reference/statements/return/index.html b/files/ru/web/javascript/reference/statements/return/index.html index 37f44af769..7859580049 100644 --- a/files/ru/web/javascript/reference/statements/return/index.html +++ b/files/ru/web/javascript/reference/statements/return/index.html @@ -25,7 +25,7 @@ translation_of: Web/JavaScript/Reference/Statements/return <h2 id="Описание">Описание</h2> -<p>При вызове оператора <code>return</code> в функции её выполнение прекращается. Указанное значение возвращается в место вызова функции. Например, приведенная ниже функция возвращает возведенное в квадрат значение своего аргумента, <code>x</code> (где <code>x</code> – это число):</p> +<p>При вызове оператора <code>return</code> в функции её выполнение прекращается. Указанное значение возвращается в место вызова функции. Например, приведённая ниже функция возвращает возведённое в квадрат значение своего аргумента, <code>x</code> (где <code>x</code> – это число):</p> <pre class="brush: js">function square(x) { return x * x; diff --git a/files/ru/web/javascript/reference/statements/throw/index.html b/files/ru/web/javascript/reference/statements/throw/index.html index 1ba0dc149a..7dfceb09c3 100644 --- a/files/ru/web/javascript/reference/statements/throw/index.html +++ b/files/ru/web/javascript/reference/statements/throw/index.html @@ -23,7 +23,7 @@ translation_of: Web/JavaScript/Reference/Statements/throw <h2 id="Description" name="Description">Описание</h2> -<p>Используйте инструкцию throw для генерирования исключения. Когда вы генерируете исключение (throw), <em>выражение</em> задает значение исключения. Каждое из следующих throw создает исключение:</p> +<p>Используйте инструкцию throw для генерирования исключения. Когда вы генерируете исключение (throw), <em>выражение</em> задаёт значение исключения. Каждое из следующих throw создаёт исключение:</p> <pre class="brush: js">throw "Error2"; // генерирует исключение, значением которого является строка throw 42; // генерирует исключение, значением которого является число 42 @@ -35,11 +35,11 @@ throw true; // генерирует исключение, значением <h3 id="Example:_Throw_an_object" name="Example:_Throw_an_object">Пример: Генерирование объекта в качестве исключения</h3> -<p>Можно указать объект в качестве исключения. Затем можно получить ссылку на этот объект и доступ ко всем его свойствам в блоке catch. Следующий пример создает объект ошибки, который имеет тип UserException, и используется для генерации исключения.</p> +<p>Можно указать объект в качестве исключения. Затем можно получить ссылку на этот объект и доступ ко всем его свойствам в блоке catch. Следующий пример создаёт объект ошибки, который имеет тип UserException, и используется для генерации исключения.</p> <pre class="brush: js">function UserException(message) { this.message = message; - this.name = "Исключение, определенное пользователем"; + this.name = "Исключение, определённое пользователем"; } function getMonthName(mo) { mo = mo-1; // Нужно скорректировать номер месяца согласно индексам массива (1=Jan, 12=Dec) @@ -54,11 +54,11 @@ function getMonthName(mo) { try { // statements to try - var myMonth = 15; // 15 находится вне границ массива, что приведет к исключению + var myMonth = 15; // 15 находится вне границ массива, что приведёт к исключению var monthName = getMonthName(myMonth); } catch (e) { monthName = "неизвестен"; - logMyErrors(e.message, e.name); // передаем исключение в обработчик ошибок + logMyErrors(e.message, e.name); // передаём исключение в обработчик ошибок } </pre> @@ -67,7 +67,7 @@ try { <p>Следующий пример проверяет, является ли строка, переданная в функцию, почтовым индексом США. Если индекс имеет недопустимый формат, будет сгенерировано исключение посредством создания объекта, имеющего тип <code>ZipCodeFormatException</code>.</p> <pre class="brush: js">/* - * Создает объект ZipCode. + * Создаёт объект ZipCode. * * Допустимые форматы почтового индекса: * 12345 @@ -125,16 +125,16 @@ function verifyZipCode(z) { return z; } -a = verifyZipCode(95060); // вернет 95060 -b = verifyZipCode(9560); // вернет -1 -c = verifyZipCode("a"); // вернет -1 -d = verifyZipCode("95060"); // вернет 95060 -e = verifyZipCode("95060 1234"); // вернет 95060 1234 +a = verifyZipCode(95060); // вернёт 95060 +b = verifyZipCode(9560); // вернёт -1 +c = verifyZipCode("a"); // вернёт -1 +d = verifyZipCode("95060"); // вернёт 95060 +e = verifyZipCode("95060 1234"); // вернёт 95060 1234 </pre> <h3 id="Example:_Rethrow_an_exception" name="Example:_Rethrow_an_exception">Пример: Повторный выброс исключения</h3> -<p>Можно использовать throw для повторного выброса исключения после того, как оно было поймано. В следующем примере ловится исключение с числовым значением и делается повторный выброс, если его значение больше 50. Повторно выброшенное исключение передается далее в вызывающую функцию или до верхнего уровня, который видит пользователь.</p> +<p>Можно использовать throw для повторного выброса исключения после того, как оно было поймано. В следующем примере ловится исключение с числовым значением и делается повторный выброс, если его значение больше 50. Повторно выброшенное исключение передаётся далее в вызывающую функцию или до верхнего уровня, который видит пользователь.</p> <pre class="brush: js">try { throw n; // бросаем исключение с числовым значением diff --git a/files/ru/web/javascript/reference/statements/try...catch/index.html b/files/ru/web/javascript/reference/statements/try...catch/index.html index 241bc90d83..a18bf95b37 100644 --- a/files/ru/web/javascript/reference/statements/try...catch/index.html +++ b/files/ru/web/javascript/reference/statements/try...catch/index.html @@ -86,7 +86,7 @@ catch (e) { } </pre> -<p>Блок <code>catch</code> задает идентификатор (<code>e</code> в примере выше) который содержит объект исключения (в примере выше — значение, переданное оператору <code>throw</code>). Область видимости этого объекта ограничивается блоком <code>catch</code>.</p> +<p>Блок <code>catch</code> задаёт идентификатор (<code>e</code> в примере выше) который содержит объект исключения (в примере выше — значение, переданное оператору <code>throw</code>). Область видимости этого объекта ограничивается блоком <code>catch</code>.</p> <h3 id="Условный_блок_catch">Условный блок <code>catch</code></h3> diff --git a/files/ru/web/javascript/reference/statements/var/index.html b/files/ru/web/javascript/reference/statements/var/index.html index fd0ca7f862..78b2f5edcd 100644 --- a/files/ru/web/javascript/reference/statements/var/index.html +++ b/files/ru/web/javascript/reference/statements/var/index.html @@ -5,7 +5,7 @@ translation_of: Web/JavaScript/Reference/Statements/var --- <div>{{jsSidebar("Statements")}}</div> -<p>Оператор <strong>var </strong>объявляет переменную, инициализируя ее, при необходимости.</p> +<p>Оператор <strong>var </strong>объявляет переменную, инициализируя её, при необходимости.</p> <p>{{EmbedInteractiveExample("pages/js/statement-var.html")}}</p> @@ -80,7 +80,7 @@ bla = 2; <p>Поэтому объявление переменных рекомендовано выносить в начало их области видимости (в начало глобального кода или в начало функции). Это даёт понять какие переменные принадлежат функции (т.е. являются локальными), а какие обрабатываются в цепи областей видимости (т.е. являются глобальными).</p> -<p>Важно отметить, что подъем будет влиять на объявление переменной, но не на инициализацию ее значения. Значение присваивается при выполнении оператора присваивания:</p> +<p>Важно отметить, что подъем будет влиять на объявление переменной, но не на инициализацию её значения. Значение присваивается при выполнении оператора присваивания:</p> <pre class="brush: js">function do_something() { console.log(bar); // выведет undefined @@ -153,7 +153,7 @@ console.log(x, y);</pre> <pre class="brush: js">var x = 0; // x объявлена глобально, затем присваивается значение 0 -console.log(typeof z); // undefined, пока еще z не существует +console.log(typeof z); // undefined, пока ещё z не существует function a() { // когда функция a вызвана, var y = 2; // y объявляется локально в функции a, затем присваивается 2 @@ -163,10 +163,10 @@ function a() { // когда функция a вызвана, function b() { // когда функция b вызвана x = 3; // присваивается 3 существующей глобальной x y = 4; // присваивается 4 существующей внешней y - z = 5; // создается новая глобальная переменная z и присваивается значение 5. + z = 5; // создаётся новая глобальная переменная z и присваивается значение 5. } // (Порождает ReferenceError в strict mode(<em>строгом</em> режиме).) - b(); // вызов b создает z как глобальную переменную + b(); // вызов b создаёт z как глобальную переменную console.log(x, y, z); // 3 4 5 } diff --git a/files/ru/web/javascript/reference/statements/while/index.html b/files/ru/web/javascript/reference/statements/while/index.html index 1baf54a1f4..4c367fc488 100644 --- a/files/ru/web/javascript/reference/statements/while/index.html +++ b/files/ru/web/javascript/reference/statements/while/index.html @@ -9,7 +9,7 @@ translation_of: Web/JavaScript/Reference/Statements/while --- <div>{{jsSidebar("Statements")}}</div> -<p><strong>Оператор while</strong> создает цикл, выполняющий заданную инструкцию, пока истинно проверяемое условие. Логическое значение условия вычисляется перед исполнением тела цикла.</p> +<p><strong>Оператор while</strong> создаёт цикл, выполняющий заданную инструкцию, пока истинно проверяемое условие. Логическое значение условия вычисляется перед исполнением тела цикла.</p> <h2 id="Синтаксис">Синтаксис</h2> diff --git a/files/ru/web/javascript/reference/statements/with/index.html b/files/ru/web/javascript/reference/statements/with/index.html index 208863d500..e28aedee90 100644 --- a/files/ru/web/javascript/reference/statements/with/index.html +++ b/files/ru/web/javascript/reference/statements/with/index.html @@ -32,7 +32,7 @@ translation_of: Web/JavaScript/Reference/Statements/with <p><strong>Pro:</strong> Оператор <strong>with</strong> может помочь уменьшить размер файла, уменьшив необходимость повторять длинную ссылку на объект без снижения производительности. Изменение цепочки контекста, необходимое для 'with', не требует больших вычислительных затрат. Использование 'with' избавит интерпретатор от разбора повторных ссылок на объекты. Однако, обратите внимание, что во многих случаях это преимущество может быть достигнуто с помощью временной переменной для хранения ссылки на нужный объект.</p> -<p><strong>Contra:</strong> Оператор <strong>with</strong> заставляет указанный объект быть найденным сначала среди всех имен поиска. Поэтому все идентификаторы, которые не относятся к указанному объекту, будут обнаруживаться медленнее в блоке «<strong>with</strong>. Там, где важна производительность, «with» следует использовать только для охвата блоков кода, которые обращаются к членам указанного объекта.</p> +<p><strong>Contra:</strong> Оператор <strong>with</strong> заставляет указанный объект быть найденным сначала среди всех имён поиска. Поэтому все идентификаторы, которые не относятся к указанному объекту, будут обнаруживаться медленнее в блоке «<strong>with</strong>. Там, где важна производительность, «with» следует использовать только для охвата блоков кода, которые обращаются к членам указанного объекта.</p> <h3 id="Ambiguity_contra">Ambiguity contra</h3> |
