aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/guide
diff options
context:
space:
mode:
Diffstat (limited to 'files/ru/web/javascript/guide')
-rw-r--r--files/ru/web/javascript/guide/details_of_the_object_model/index.html12
-rw-r--r--files/ru/web/javascript/guide/functions/index.html20
-rw-r--r--files/ru/web/javascript/guide/indexed_collections/index.html12
-rw-r--r--files/ru/web/javascript/guide/iterators_and_generators/index.html2
-rw-r--r--files/ru/web/javascript/guide/keyed_collections/index.html2
-rw-r--r--files/ru/web/javascript/guide/loops_and_iteration/index.html8
-rw-r--r--files/ru/web/javascript/guide/meta_programming/index.html2
-rw-r--r--files/ru/web/javascript/guide/modules/index.html2
-rw-r--r--files/ru/web/javascript/guide/numbers_and_dates/index.html20
-rw-r--r--files/ru/web/javascript/guide/regular_expressions/character_classes/index.html30
-rw-r--r--files/ru/web/javascript/guide/regular_expressions/index.html28
-rw-r--r--files/ru/web/javascript/guide/text_formatting/index.html12
-rw-r--r--files/ru/web/javascript/guide/using_promises/index.html40
-rw-r--r--files/ru/web/javascript/guide/working_with_objects/index.html10
14 files changed, 100 insertions, 100 deletions
diff --git a/files/ru/web/javascript/guide/details_of_the_object_model/index.html b/files/ru/web/javascript/guide/details_of_the_object_model/index.html
index a5fda463eb..f61c174fc9 100644
--- a/files/ru/web/javascript/guide/details_of_the_object_model/index.html
+++ b/files/ru/web/javascript/guide/details_of_the_object_model/index.html
@@ -55,7 +55,7 @@ translation_of: Web/JavaScript/Guide/Details_of_the_Object_Model
</tr>
<tr>
<td>Определяем класс с помощью определения класса; создаем экземпляр класса с помощью метода-конструктора.</td>
- <td>Определение и создание объекта происходит с помощью функций-конcтрукторов.</td>
+ <td>Определение и создание объекта происходит с помощью функций-конструкторов.</td>
</tr>
<tr>
<td>Создание отдельного объекта с помощью оператора <code>new</code>.</td>
@@ -388,7 +388,7 @@ public class Engineer extends WorkerBee {
</tbody>
</table>
-<p>В JavaScript эти определения используют специальную идеому для установки значений по умолчанию:</p>
+<p>В JavaScript эти определения используют специальную идиому для установки значений по умолчанию:</p>
<pre class="brush: js">this.name = name || '';
</pre>
@@ -443,7 +443,7 @@ jane.machine == 'belau'
<li>После возвращения из конструктора, JavaScript присваивает новый объект переменной <code>jane</code>.</li>
</ol>
-<p>Можно подумать, что вызвав <code>WorkerBee</code> из конструктора <code>Engineer</code>, вы настроили соответствующим образом наследование для объектов, создаваемых <code>Engineer</code>. Это не так. Вызов конструктора <code>WorkerBee</code> обеспечивает только то, что объект <code>Engineer</code> запускается со  свойствами, определенными во всех функциях-конструкторах, которые были вызваны. Так, если позже добавить свойства в прототипы <code>Employee</code> или <code>WorkerBee</code>, эти свойства не унаследуются объектами из <code>Engineer</code>. Например, предположим, вы использовали следующие определения:</p>
+<p>Можно подумать, что вызвав <code>WorkerBee</code> из конструктора <code>Engineer</code>, вы настроили соответствующим образом наследование для объектов, создаваемых <code>Engineer</code>. Это не так. Вызов конструктора <code>WorkerBee</code> обеспечивает только то, что объект <code>Engineer</code> запускается со  свойствами, определенными во всех функциях-конструкторах, которые были вызваны. Так, если позже добавить свойства в прототипы <code>Employee</code> или <code>WorkerBee</code>, эти свойства не наследуются объектами из <code>Engineer</code>. Например, предположим, вы использовали следующие определения:</p>
<pre class="brush: js">function Engineer (name, projs, mach) {
this.base = WorkerBee;
@@ -494,7 +494,7 @@ function Engineer (name, projs, mach) {
</tbody>
</table>
-<p>Использование метода <code>call()</code> является более чистой реализацией наследования, так как он не требует создания дополнителного свойства, именованного в примере как <code>base</code>.</p>
+<p>Использование метода <code>call()</code> является более чистой реализацией наследования, так как он не требует создания дополнительного свойства, именованного в примере как <code>base</code>.</p>
<h2 id="Тонкости_наследования_свойств">Тонкости наследования свойств</h2>
@@ -529,7 +529,7 @@ WorkerBee.prototype = new Employee;
<pre class="brush: js">var amy = new WorkerBee;
</pre>
-<p><code><font face="Open Sans, Arial, sans-serif">В результате, объект </font>amy</code> будет иметь одно локальное своство - <code>projects</code>. Свойства <code>name</code> и <code>dept</code> не будут локальными для <code>amy</code> но будут взяты из прототипа (объект на который ссылается свойство <code>__proto__</code> объекта <code>amy)</code>. Таким образом, <code>amy</code> имеет три свойства:</p>
+<p><code><font face="Open Sans, Arial, sans-serif">В результате, объект </font>amy</code> будет иметь одно локальное свойство - <code>projects</code>. Свойства <code>name</code> и <code>dept</code> не будут локальными для <code>amy</code> но будут взяты из прототипа (объект на который ссылается свойство <code>__proto__</code> объекта <code>amy)</code>. Таким образом, <code>amy</code> имеет три свойства:</p>
<pre class="brush: js">amy.name == "";
amy.dept == "general";
@@ -686,7 +686,7 @@ var mac = new Engineer("Wood, Mac");
<p>В JavaScript наследование свойств осуществляется путем поиска в цепочке прототипов. Так как объект может иметь лишь единственный присвоенный ему прототип, JavaScript не может осуществить наследование более чем от одной цепочки прототипов.</p>
-<p>Однако конструктор в JavaScript может вызывать любое количество вложенных конструкторов. Это дает некоторую, хоть и ограниченную (отсутствием прототипной связанности) видимость множественного наследования. Рассмотрим следуюший фрагмент:</p>
+<p>Однако конструктор в JavaScript может вызывать любое количество вложенных конструкторов. Это дает некоторую, хоть и ограниченную (отсутствием прототипной связанности) видимость множественного наследования. Рассмотрим следующий фрагмент:</p>
<pre class="brush: js">function Hobbyist (hobby) {
this.hobby = hobby || "scuba";
diff --git a/files/ru/web/javascript/guide/functions/index.html b/files/ru/web/javascript/guide/functions/index.html
index 5e487e354d..b72cfab871 100644
--- a/files/ru/web/javascript/guide/functions/index.html
+++ b/files/ru/web/javascript/guide/functions/index.html
@@ -44,7 +44,7 @@ translation_of: Web/JavaScript/Guide/Functions
<ul>
<li>Имя функции.</li>
<li>Список параметров (принимаемых функцией) заключенных в круглые скобки <code>()</code> и разделенных запятыми.</li>
- <li>Инструкции, которые будут выполненны после вызова функции, заключают в фигурные скобки <code>{ }</code>.</li>
+ <li>Инструкции, которые будут выполнены после вызова функции, заключают в фигурные скобки <code>{ }</code>.</li>
</ul>
<p>Например, следующий код объявляет простую функцию с именем <code>square:</code></p>
@@ -85,7 +85,7 @@ y = mycar.make; // y получает значение "Toyota"
var x = square(4); // x получает значение 16
</pre>
-<p>Однако, имя может быть и присвоено для вызова самой себя внутри самой функции и для отладчика (<em>debugger</em>) для идентифицирования функции в стек-треках (<em>stack traces</em>; "trace" — "след" / "отпечаток").</p>
+<p>Однако, имя может быть и присвоено для вызова самой себя внутри самой функции и для отладчика (<em>debugger</em>) для идентифицированные функции в стек-треках (<em>stack traces</em>; "trace" — "след" / "отпечаток").</p>
<pre class="brush: js">var factorial = function fac(n) { return n &lt; 2 ? 1 : n * fac(n - 1); };
@@ -190,7 +190,7 @@ e = factorial(5); // e gets the value 120
<p><u><em>(function scope)</em></u></p>
-<p>Переменные объявленные в функции не могут быть доступными где-нибудь вне этой функции, поэтому переменные (которые нужны именно для функции) объявляют только в scope функции. При этом функция имеет доступ ко всем переменным и функциям, объявленным внутри её scope. Другими словами функция объявленная в глобальном scope имеет доступ ко всем переменным в глобальном scope. Функция объявленная внутри другой функции ещё имеет доступ и ко всем переменным её родителькой функции и другим переменным, к которым эта родительская функция имеет доступ.</p>
+<p>Переменные объявленные в функции не могут быть доступными где-нибудь вне этой функции, поэтому переменные (которые нужны именно для функции) объявляют только в scope функции. При этом функция имеет доступ ко всем переменным и функциям, объявленным внутри её scope. Другими словами функция объявленная в глобальном scope имеет доступ ко всем переменным в глобальном scope. Функция объявленная внутри другой функции ещё имеет доступ и ко всем переменным её родительской функции и другим переменным, к которым эта родительская функция имеет доступ.</p>
<pre class="brush: js">// Следующие переменные объявленны в глобальном scope
var num1 = 20,
@@ -305,7 +305,7 @@ foo(3);
<h3 id="Вложенные_функции_nested_functions_и_замыкания_closures">Вложенные функции (nested functions) и замыкания (closures)</h3>
-<p>Вы можете вложить одну функцию в другую. Вложенная функция (<em>nested function</em>;<em> inner</em>) приватная (<em>private</em>) и она помещена в другую функцию (<em>outer</em>). Так образуется <em>замыкание</em> (<em>closure</em>). Closure — это выражение (обычно функция), которое может иметь свободные переменные вместе со средой, которая связывает эти переменые (что "закрывает" (<em>"close"</em>) выражение).</p>
+<p>Вы можете вложить одну функцию в другую. Вложенная функция (<em>nested function</em>;<em> inner</em>) приватная (<em>private</em>) и она помещена в другую функцию (<em>outer</em>). Так образуется <em>замыкание</em> (<em>closure</em>). Closure — это выражение (обычно функция), которое может иметь свободные переменные вместе со средой, которая связывает эти переменные (что "закрывает" (<em>"close"</em>) выражение).</p>
<p>Поскольку вложенная функция это closure, это означает, что вложенная функция может "унаследовать" (<em>inherit</em>) аргументы и переменные функции, в которую та вложена. Другими словами, вложенная функция содержит scope внешней (<em>"outer"</em>) функции.</p>
@@ -332,7 +332,7 @@ b = addSquares(3, 4); // возвращает 25
c = addSquares(4, 5); // возвращает 41
</pre>
-<p>Поскольку вложенная функция формирует closure, Вы можете вызвать внешную функцию и указать аргументы для обоих функций (для outer и innner).</p>
+<p>Поскольку вложенная функция формирует closure, Вы можете вызвать внешнюю функцию и указать аргументы для обоих функций (для outer и innner).</p>
<pre class="brush: js">function outside(x) {
function inside(y) {
@@ -356,7 +356,7 @@ result1 = outside(3)(5); // возвращает 8
<h3 id="Несколько_уровней_вложенности_функций_Multiply-nested_functions">Несколько уровней вложенности функций (Multiply-nested functions)</h3>
-<p>Функции можно вкадывать несколько раз, т.е. функция (A) хранит в себе функцию (B), которая хранит в себе функцию (C). Обе фукнкции B и C формируют closures, так B имеет доступ к переменным и аргументам A, и C имеет такой же доступ к B. В добавок, поскольку C имеет такой доступ к B, который имеет такой же доступ к A, C ещё имеет такой же доспут к A. Таким образом closures может хранить в себе несколько scope; они рекурсивно хранят scope функций, содержащих его. Это называется <em>chaining</em> (<em>chain — цепь</em>; Почему названо "chaining" будет объяснено позже)</p>
+<p>Функции можно вкладывать несколько раз, т.е. функция (A) хранит в себе функцию (B), которая хранит в себе функцию (C). Обе функции B и C формируют closures, так B имеет доступ к переменным и аргументам A, и C имеет такой же доступ к B. В добавок, поскольку C имеет такой доступ к B, который имеет такой же доступ к A, C ещё имеет такой же доступ к A. Таким образом closures может хранить в себе несколько scope; они рекурсивно хранят scope функций, содержащих его. Это называется <em>chaining</em> (<em>chain — цепь</em>; Почему названо "chaining" будет объяснено позже)</p>
<p>Рассмотрим следующий пример:</p>
@@ -376,7 +376,7 @@ A(1); // в консоле выведится 6 (1 + 2 + 3)</pre>
<ol>
<li>Функция <code>B</code> формирует closure, включающее <code>A</code>, т.е. <code>B</code> имеет доступ к аргументам и переменным функции <code>A</code>.</li>
<li>Функция <code>C</code> формирует closure, включающее <code>B</code>.</li>
- <li>Раз closure функции <code>B</code> включает <code>A</code>, то closure <code>С</code> тоже включает A, <code>C</code> имеет доступ к аргументам и переменным обоих функций <code>B</code> <em>и</em> <code>A</code>. Другими словами, <code>С</code> cвязывает <em>цепью</em> (<em>chain</em>) scopes функций <code>B</code> и <code>A</code> в таком порядке.</li>
+ <li>Раз closure функции <code>B</code> включает <code>A</code>, то closure <code>С</code> тоже включает A, <code>C</code> имеет доступ к аргументам и переменным обоих функций <code>B</code> <em>и</em> <code>A</code>. Другими словами, <code>С</code> связывает <em>цепью</em> (<em>chain</em>) scopes функций <code>B</code> и <code>A</code> в таком порядке.</li>
</ol>
<p>В обратном порядке, однако, это не верно. <code>A</code> не имеет доступ к переменным и аргументам <code>C</code>, потому что <code>A</code> не имеет такой доступ к <code>B</code>. Таким образом, <code>C</code> остается приватным только для <code>B</code>.</p>
@@ -401,7 +401,7 @@ outside()(10); // возвращает 20 вместо 10</pre>
<p><em><u>(Closures)</u></em></p>
-<p>Closures это один из главных особенностей JavaScript. JavaScript разрешает вложенность функций и предоставляет вложенной функции полный доступ ко всем переменным и функциям, объявленным внутри внешней функции (и другим переменным и функцим, к которым имеет доступ эта внешняя функция).</p>
+<p>Closures это один из главных особенностей JavaScript. JavaScript разрешает вложенность функций и предоставляет вложенной функции полный доступ ко всем переменным и функциям, объявленным внутри внешней функции (и другим переменным и функции, к которым имеет доступ эта внешняя функция).</p>
<p>Однако, внешняя функция не имеет доступа к переменным и функциям, объявленным во внутренней функции. Это обеспечивает своего рода инкапсуляцию для переменных внутри вложенной функции.</p>
@@ -582,7 +582,7 @@ console.log(arr); // [2, 4, 6]
<p><u><em>(Arrow functions)</em></u></p>
-<p><a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Functions/Arrow_functions">Стрелочные функции</a> — функции вида "arrow function expression" (неверно <strong>fat arrow function</strong>) — имеют укороченный ситаксис по сравнению с function expression и лексически связывает значение <code>this</code>. Стрелочные функции всегда анонимны. Посмотрите также пост блога hacks.mozilla.org "<a href="https://hacks.mozilla.org/2015/06/es6-in-depth-arrow-functions/" rel="noopener">ES6 In Depth: Arrow functions</a>".</p>
+<p><a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Functions/Arrow_functions">Стрелочные функции</a> — функции вида "arrow function expression" (неверно <strong>fat arrow function</strong>) — имеют укороченный синтаксис по сравнению с function expression и лексически связывает значение <code>this</code>. Стрелочные функции всегда анонимны. Посмотрите также пост блога hacks.mozilla.org "<a href="https://hacks.mozilla.org/2015/06/es6-in-depth-arrow-functions/" rel="noopener">ES6 In Depth: Arrow functions</a>".</p>
<p>На введение стрелочных функций повлияли два фактора: более короткие функции и лексика <code>this</code>.</p>
@@ -607,7 +607,7 @@ console.log(a3); // logs [8, 6, 7, 9]</pre>
<h3 id="Лексика_this">Лексика <code>this</code></h3>
-<p>До стрелочных функций каждая новая функция определяла свое значение <code>this</code> (новый объект в случае конструктора, undefined в strict mode,  контекстный объект, если функция вызвана как метод объекта, и т.д.).  Это оказалось раздражающим с точки зрения объектно-орентированного стиля программирования.</p>
+<p>До стрелочных функций каждая новая функция определяла свое значение <code>this</code> (новый объект в случае конструктора, undefined в strict mode,  контекстный объект, если функция вызвана как метод объекта, и т.д.).  Это оказалось раздражающим с точки зрения объектно-ориентированного стиля программирования.</p>
<pre class="brush: js">function Person() {
// Конструктор Person() определяет `this` как самого себя.
diff --git a/files/ru/web/javascript/guide/indexed_collections/index.html b/files/ru/web/javascript/guide/indexed_collections/index.html
index 96ea922455..e858efb75d 100644
--- a/files/ru/web/javascript/guide/indexed_collections/index.html
+++ b/files/ru/web/javascript/guide/indexed_collections/index.html
@@ -24,7 +24,7 @@ var arr = [element0, element1, ..., elementN];
<p><code>element0, element1, ..., elementN</code> - список значений элементов массива. Если значения заданы, то эти значения будут являться элементами массива после его инициализации. Свойство <code>length</code> у массива будет равно количеству аргументов.</p>
-<p>Синтаксис с использованием квадратных скобок называется "литерал массива" (array literal) или "инициализатор массива". Такая запись короче, чем другие способы создания массива, и, как правило, более предпочтительна. Cм. <a href="/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Array_literals" title="en-US/docs/JavaScript/Guide/Values, Variables, and Literals#Array Literals">Array literals</a>.</p>
+<p>Синтаксис с использованием квадратных скобок называется "литерал массива" (array literal) или "инициализатор массива". Такая запись короче, чем другие способы создания массива, и, как правило, более предпочтительна. См. <a href="/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Array_literals" title="en-US/docs/JavaScript/Guide/Values, Variables, and Literals#Array Literals">Array literals</a>.</p>
<p>Для создания массива без элементов, но ненулевой длины, возможно использовать одно из следующих выражений:</p>
@@ -114,7 +114,7 @@ arr["length"]; // Вернёт число 3, так как это свойст
<h3 id="Понимание_length">Понимание <code>length</code></h3>
-<p>На уровне реализации, массивы в JavaScript хранят свои элементы как стандартные свойства объекта, используя индекс в качестве имени свойства. Специальное свойство <code>length</code> всегда возвращает индекс посленего элемента плюс один (в примере ниже, элемент 'Dusty' размещается под индексом 30, по этому cats.length возвращает 30 + 1). Особо следует запомнить, что в JavaScript массивы индексируются с нуля: отсчет ведется с 0, а не с 1. Из этого и следует, что свойство <code><code>length</code></code> всегда на единицу больше, чем наибольший индекс хранящийся в массиве:</p>
+<p>На уровне реализации, массивы в JavaScript хранят свои элементы как стандартные свойства объекта, используя индекс в качестве имени свойства. Специальное свойство <code>length</code> всегда возвращает индекс последнего элемента плюс один (в примере ниже, элемент 'Dusty' размещается под индексом 30, по этому cats.length возвращает 30 + 1). Особо следует запомнить, что в JavaScript массивы индексируются с нуля: отсчет ведется с 0, а не с 1. Из этого и следует, что свойство <code><code>length</code></code> всегда на единицу больше, чем наибольший индекс хранящийся в массиве:</p>
<pre class="brush: js">var cats = [];
cats[30] = ['Dusty'];
@@ -238,7 +238,7 @@ var first = myArray.shift();
// myArray = ["2", "3"], first = "1"
</pre>
-<p>{{jsxref("Array.shift", "unshift()")}} добавляет один или несколько элементов в начало массива и возвращает его новую длинну.</p>
+<p>{{jsxref("Array.shift", "unshift()")}} добавляет один или несколько элементов в начало массива и возвращает его новую длину.</p>
<pre class="brush: js">var myArray = new Array ("1", "2", "3");
myArray.unshift("4", "5");
@@ -325,7 +325,7 @@ var a2 = a1.map(function(item) { return item.toUpperCase(); });
console.log(a2); // выводит A,B,C
</pre>
-<p>{{jsxref("Array.filter", "filter(callback[, thisObject])")}} возвращает новый массив, содержащийт только те элементы исходного массива, для которых вызов <code>callback</code>-функции вернул true.</p>
+<p>{{jsxref("Array.filter", "filter(callback[, thisObject])")}} возвращает новый массив, содержащий только те элементы исходного массива, для которых вызов <code>callback</code>-функции вернул true.</p>
<pre class="brush: js">var a1 = ['a', 10, 'b', 20, 'c', 30];
var a2 = a1.filter(function(item) { return typeof item == 'number'; });
@@ -358,7 +358,7 @@ console.log(a3.some(isNumber)); // выводит false
<p>Те из методов выше, что принимают <code>callback</code>-функцию в качестве аргумента, известны как методы итерации (<em>iterative methods)</em>, потому что определенным образом проходятся по всем элементам массива. Каждый из таких методов принимает второй, опциональный элемент, называемый <code>thisObject</code>. Если этот аргумент присутствует, то его значение присваивается ключевому слову <code>this</code> в теле <code>callback</code>-функции. Иначе, как и в любом другом случае вызова функции вне явного контекста, <code>this</code> будет ссылаться на глобальный объект ({{domxref("window")}}).</p>
-<p>В действительности <code>callback</code>-функция вызывается с тремя аргументами. Первый аргумент - текущий элемен массива, второй - индекс этого элемента, и третий - ссылка на сам массив. Однако, в JavaScript, функции игнорируют любые аргументы, которые не перечислены в списке аргументов. Таким образом, нет ничего страшного в использовании функции с одним аргументом, такой как <code>alert</code>.</p>
+<p>В действительности <code>callback</code>-функция вызывается с тремя аргументами. Первый аргумент - текущий элемент массива, второй - индекс этого элемента, и третий - ссылка на сам массив. Однако, в JavaScript, функции игнорируют любые аргументы, которые не перечислены в списке аргументов. Таким образом, нет ничего страшного в использовании функции с одним аргументом, такой как <code>alert</code>.</p>
<p>{{jsxref("Array.reduce", "reduce(callback[, initialValue])")}} последовательно применяет <code>callback</code>-функцию <code>callback(firstValue, secondValue)</code> для того, чтобы свести все элементы массива к одному значению. В первый параметр функции передаётся предыдущий результат работы функции или первый элемент, а во второй - текущий элемент. Третьим параметром передаётся индекс текущего элемента.</p>
@@ -396,7 +396,7 @@ for (i = 0; i &lt; 4; i++) {
<h3 id="Массивы_и_регулярные_выражения">Массивы и регулярные выражения</h3>
-<p>Когда массив является результатом вычислений регулярного выражения над строкой, он содержит свойтсва и элементы с информацией о совпадениях. Массив возвращается функциями  {{jsxref("Global_Objects/RegExp/exec","RegExp.exec()")}}, {{jsxref("Global_Objects/String/match","String.match()")}} и  {{jsxref("Global_Objects/String/split","String.split()")}} Подробнее о том, как использовать массивы с регулярными выражениями смотрите в <a href="/en-US/docs/Web/JavaScript/Guide/Regular_Expressions" title="en-US/docs/JavaScript/Guide/Regular Expressions">Regular Expressions</a>.</p>
+<p>Когда массив является результатом вычислений регулярного выражения над строкой, он содержит свойства и элементы с информацией о совпадениях. Массив возвращается функциями  {{jsxref("Global_Objects/RegExp/exec","RegExp.exec()")}}, {{jsxref("Global_Objects/String/match","String.match()")}} и  {{jsxref("Global_Objects/String/split","String.split()")}} Подробнее о том, как использовать массивы с регулярными выражениями смотрите в <a href="/en-US/docs/Web/JavaScript/Guide/Regular_Expressions" title="en-US/docs/JavaScript/Guide/Regular Expressions">Regular Expressions</a>.</p>
<h3 id="Работа_с_массивоподобными_объектами">Работа с массивоподобными объектами</h3>
diff --git a/files/ru/web/javascript/guide/iterators_and_generators/index.html b/files/ru/web/javascript/guide/iterators_and_generators/index.html
index a04e4b6384..ea05bf2965 100644
--- a/files/ru/web/javascript/guide/iterators_and_generators/index.html
+++ b/files/ru/web/javascript/guide/iterators_and_generators/index.html
@@ -118,7 +118,7 @@ a // "a"
<p><code>Метод</code> {{jsxref("Global_Objects/Generator/next","next()")}} также принимает значение, которое может использоваться для изменения внутреннего состояния генератора. Значение, переданное в next(), будет рассматриваться как результат последнего yield выражения, которое приостановило генератор.</p>
-<p>Вот генератор чисел Фибоначи, использующий <code>next(x)</code> для перезапуска последовательности:</p>
+<p>Вот генератор чисел Фибоначчи, использующий <code>next(x)</code> для перезапуска последовательности:</p>
<pre class="brush: js">function* fibonacci(){
var fn1 = 1;
diff --git a/files/ru/web/javascript/guide/keyed_collections/index.html b/files/ru/web/javascript/guide/keyed_collections/index.html
index 2b2d128801..2c04e8355b 100644
--- a/files/ru/web/javascript/guide/keyed_collections/index.html
+++ b/files/ru/web/javascript/guide/keyed_collections/index.html
@@ -142,7 +142,7 @@ mySet2 = new Set([1,2,3,4]);
<h3 id="Тип_WeakSet"><code>Тип WeakSet</code> </h3>
-<p>{{jsxref("WeakSet")}} это специальный вид коллекции, элементами которой могут быть только объекты. Ссылки на эти объекты в WeakSet являютя <em>слабыми </em>(не учитываются  сборщиком мусора (garbage collector GC)).</p>
+<p>{{jsxref("WeakSet")}} это специальный вид коллекции, элементами которой могут быть только объекты. Ссылки на эти объекты в WeakSet являются <em>слабыми </em>(не учитываются  сборщиком мусора (garbage collector GC)).</p>
<div class="note">
<p>Элементы <code>WeakSet</code> уникальны и могут быть добавлены только один раз, также как и в {{jsxref("Set")}}. </p>
diff --git a/files/ru/web/javascript/guide/loops_and_iteration/index.html b/files/ru/web/javascript/guide/loops_and_iteration/index.html
index 8b4d751de5..9f7665aadb 100644
--- a/files/ru/web/javascript/guide/loops_and_iteration/index.html
+++ b/files/ru/web/javascript/guide/loops_and_iteration/index.html
@@ -23,7 +23,7 @@ for (step = 0; step &lt; 5; step++) {
<p>Существует множество различных видов циклов, но все они по сути делают тоже самое: повторяют какое-либо действие несколько раз (не забывайте про нулевой раз повторения, отсчёт в массиве начинается с 0). Различные по строению циклы предлагают разные способы для определения начала и окончания цикла. Для различных задач программирования существуют свои операторы цикла, с помощью которых они решаются намного проще.</p>
-<p>Операторы предназначеные для организации циклов в  JavaScript:</p>
+<p>Операторы предназначенные для организации циклов в  JavaScript:</p>
<ul>
<li>{{anch("Цикл_for")}}</li>
@@ -43,7 +43,7 @@ for (step = 0; step &lt; 5; step++) {
<pre class="syntaxbox">for ([начало]; [условие]; [шаг]) выражения
</pre>
-<p>При его выполнении происходит следущее:</p>
+<p>При его выполнении происходит следующее:</p>
<ol>
<li>Выполняется выражение <code>начало</code>, если оно указано. Это выражение обычно инициализирует один или несколько счётчиков, но синтаксис позволяет выражению быть любой сложности. Также используется для объявления переменных.</li>
@@ -156,7 +156,7 @@ while (n &lt; 3) {
<h2 id="Метка_(label)">Метка (label)</h2>
-<p><a href="/ru/docs/Web/JavaScript/Reference/Statements/label">Метка</a> представляет собой оператор с индентификатором, который позволяет вам ссылаться на какое-то место в вашей программе. Например, вы можете использовать метку, чтобы обозначить цикл, а затем использовать операторы <code>break</code> или <code>continue</code>, чтобы указать, должна ли программа прерывать цикл или продолжать его выполнение.</p>
+<p><a href="/ru/docs/Web/JavaScript/Reference/Statements/label">Метка</a> представляет собой оператор с идентификатором, который позволяет вам ссылаться на какое-то место в вашей программе. Например, вы можете использовать метку, чтобы обозначить цикл, а затем использовать операторы <code>break</code> или <code>continue</code>, чтобы указать, должна ли программа прерывать цикл или продолжать его выполнение.</p>
<p>Синтаксис метки следующий:</p>
@@ -164,7 +164,7 @@ while (n &lt; 3) {
оператор
</pre>
-<p>Значение <em>метки</em> может быть любым корректным JavaScript индентификатором, не являющимся зарезервированным словом. <code><em>Оператор</em></code><em>, </em>указанный вами после метки может быть любым выражением.</p>
+<p>Значение <em>метки</em> может быть любым корректным JavaScript идентификатором, не являющимся зарезервированным словом. <code><em>Оператор</em></code><em>, </em>указанный вами после метки может быть любым выражением.</p>
<h3 id="Пример_3"><strong>Пример</strong></h3>
diff --git a/files/ru/web/javascript/guide/meta_programming/index.html b/files/ru/web/javascript/guide/meta_programming/index.html
index 7ab4762677..49b3657c4c 100644
--- a/files/ru/web/javascript/guide/meta_programming/index.html
+++ b/files/ru/web/javascript/guide/meta_programming/index.html
@@ -233,7 +233,7 @@ typeof proxy; // "object", для метода typeof нет лову
<h3 id="Улучшенная_функция_apply">Улучшенная функция <code>apply</code></h3>
-<p>В ES5 обычно используется метод {{jsxref("Function.prototype.apply()")}} для вызова функции в определенном контексте (с определенным <code>this)</code> и с параметрами, заданными в виде массива (или <a href="/ru/docs/Web/JavaScript/Guide/Indexed_collections#Working_with_array-like_objects">массиво-подобного объекта</a>).</p>
+<p>В ES5 обычно используется метод {{jsxref("Function.prototype.apply()")}} для вызова функции в определенном контексте (с определенным <code>this)</code> и с параметрами, заданными в виде массива (или <a href="/ru/docs/Web/JavaScript/Guide/Indexed_collections#Working_with_array-like_objects">массива-подобного объекта</a>).</p>
<pre class="brush: js">Function.prototype.apply.call(Math.floor, undefined, [1.75]);</pre>
diff --git a/files/ru/web/javascript/guide/modules/index.html b/files/ru/web/javascript/guide/modules/index.html
index 0664a4d93f..2c524cb353 100644
--- a/files/ru/web/javascript/guide/modules/index.html
+++ b/files/ru/web/javascript/guide/modules/index.html
@@ -17,7 +17,7 @@ translation_of: Web/JavaScript/Guide/Modules
<h2 id="Поддержка_в_броузерах">Поддержка в броузерах</h2>
-<p>Встроенная обработка модулей JavaScript свяазана с функциями {{JSxRef("Statements/import", "import")}} и {{JSxRef("Statements/export", "export")}}, которые поддерживаются броузерами следующим образом:</p>
+<p>Встроенная обработка модулей JavaScript связана с функциями {{JSxRef("Statements/import", "import")}} и {{JSxRef("Statements/export", "export")}}, которые поддерживаются броузерами следующим образом:</p>
<h3 id="import">import</h3>
diff --git a/files/ru/web/javascript/guide/numbers_and_dates/index.html b/files/ru/web/javascript/guide/numbers_and_dates/index.html
index 7022834e0d..09a2f8ee9e 100644
--- a/files/ru/web/javascript/guide/numbers_and_dates/index.html
+++ b/files/ru/web/javascript/guide/numbers_and_dates/index.html
@@ -9,7 +9,7 @@ translation_of: Web/JavaScript/Guide/Numbers_and_dates
<h2 id="Числа">Числа</h2>
-<p>В JavaScript все числа являются <a class="external external-icon" href="https://en.wikipedia.org/wiki/Double-precision_floating-point_format">числами двойной точности в соответствии с 64-битным двоичным форматом IEEE 754</a> (т.е. числами, пренадлежащими диапазону между -(2<sup>53</sup> -1) и 2<sup>53</sup> -1). <strong>Целые числа не рассматриваются как отдельный тип чисел</strong>. В дополнение к числам с плавающей запятой, к числовому типу данных относятся также три символьные величины: <code>+</code>{{jsxref("бесконечность")}}, <code>-</code>{{jsxref("бесконечность")}}, и {{jsxref("NaN")}} (не-число). В разделе <a href="/en-US/docs/Web/JavaScript/Data_structures">типы и структуры данных в JavaScript</a> числовой тип данных описан в контексте с другими примитивными типами в JavaScript.</p>
+<p>В JavaScript все числа являются <a class="external external-icon" href="https://en.wikipedia.org/wiki/Double-precision_floating-point_format">числами двойной точности в соответствии с 64-битным двоичным форматом IEEE 754</a> (т.е. числами, принадлежащими диапазону между -(2<sup>53</sup> -1) и 2<sup>53</sup> -1). <strong>Целые числа не рассматриваются как отдельный тип чисел</strong>. В дополнение к числам с плавающей запятой, к числовому типу данных относятся также три символьные величины: <code>+</code>{{jsxref("бесконечность")}}, <code>-</code>{{jsxref("бесконечность")}}, и {{jsxref("NaN")}} (не-число). В разделе <a href="/en-US/docs/Web/JavaScript/Data_structures">типы и структуры данных в JavaScript</a> числовой тип данных описан в контексте с другими примитивными типами в JavaScript.</p>
<p>Вы можете использовать четыре типа числовых литералов: десятичный, двоичный, восьмеричный и шестнадцатеричный.</p>
@@ -28,7 +28,7 @@ translation_of: Web/JavaScript/Guide/Numbers_and_dates
<h3 id="Двоичные_числа">Двоичные числа</h3>
-<p>Систаксис двоичных чисел использует ведущий 0 за которым следует латинская буква "B" в верхнем или нижнем регистре (<code>0b</code> or <code>0B</code>). Если цифры после <code>0b</code> не являются 0 или 1, то будет сгенерированно <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError">SyntaxError</a></code> с сообщением: "Missing binary digits after 0b".</p>
+<p>Синтаксис двоичных чисел использует ведущий 0 за которым следует латинская буква "B" в верхнем или нижнем регистре (<code>0b</code> or <code>0B</code>). Если цифры после <code>0b</code> не являются 0 или 1, то будет сгенерированно <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError">SyntaxError</a></code> с сообщением: "Missing binary digits after 0b".</p>
<pre class="brush: js">var FLT_SIGNBIT = 0b10000000000000000000000000000000; // 2147483648
var FLT_EXPONENT = 0b01111111100000000000000000000000; // 2139095040
@@ -36,7 +36,7 @@ var FLT_MANTISSA = 0B00000000011111111111111111111111; // 8388607</pre>
<h3 id="Восьмеричные_числа">Восьмеричные числа</h3>
-<p>Синтаксис восмеричных чисел использует ноль в начале. Если цифры после 0 не входят в диапазон от 0 до 7, число будет интерпретированно как десятичное.</p>
+<p>Синтаксис восьмеричных чисел использует ноль в начале. Если цифры после 0 не входят в диапазон от 0 до 7, число будет интерпретировано как десятичное.</p>
<pre class="brush: js">var n = 0755; // 493
var m = 0644; // 420
@@ -44,7 +44,7 @@ var m = 0644; // 420
<h3 id="Шестнадцатеричные_числа">Шестнадцатеричные числа</h3>
-<p>Синтаксис  шестнадцатеричных чисел исользует ведущий 0 за которым следует латинская буква "X" в верхнем или нижнем регистре (<code>0x</code> or <code>0X</code>). Если цифры после 0x не входят в диапазон (0123456789ABCDEF),  то будет сгенерированно <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError">SyntaxError</a></code> с сообщением: "Identifier starts immediately after numeric literal".</p>
+<p>Синтаксис  шестнадцатеричных чисел использует ведущий 0 за которым следует латинская буква "X" в верхнем или нижнем регистре (<code>0x</code> or <code>0X</code>). Если цифры после 0x не входят в диапазон (0123456789ABCDEF),  то будет сгенерированно <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError">SyntaxError</a></code> с сообщением: "Identifier starts immediately after numeric literal".</p>
<pre class="brush: js">0xFFFFFFFFFFFFFFFFF // 295147905179352830000
0x123456789ABCDEF // 81985529216486900
@@ -223,7 +223,7 @@ var notANum = Number.NaN;
<td>
<p>{{jsxref("Math.pow", "pow()")}}, {{jsxref("Math.exp", "exp()")}}, {{jsxref("Math.expm1", "expm1()")}}, {{jsxref("Math.log10", "log10()")}}, {{jsxref("Math.log1p", "log1p()")}}, {{jsxref("Math.log2", "log2()")}}</p>
</td>
- <td>Экпоненциальные и логорифмические функции</td>
+ <td>Экспоненциальные и логорифмические функции</td>
</tr>
<tr>
<td>{{jsxref("Math.floor", "floor()")}}, {{jsxref("Math.ceil", "ceil()")}}</td>
@@ -253,7 +253,7 @@ var notANum = Number.NaN;
<td>{{jsxref("Math.clz32", "clz32()")}},<br>
{{jsxref("Math.imul", "imul()")}}</td>
<td>Количество первых нулевых бит в 32-битном двоичном представлении.<br>
- Возвращает результат Cи-подобного 32-битного целочисленного умножения двух аргументов.</td>
+ Возвращает результат Си-подобного 32-битного целочисленного умножения двух аргументов.</td>
</tr>
</tbody>
</table>
@@ -262,7 +262,7 @@ var notANum = Number.NaN;
<h2 id="Объект_Date"><code>Объект Date</code></h2>
-<p>JavaScript не имеет отдельного типа данных для хранения дат. Однако, вы можете использовать объект {{jsxref("Date")}} и его методы для работы с датами и времененем в вашем приложении. Объект <code>Date</code> имеет большое количество методов для записи, чтения и оперирования датой и временем, а свойств не имеет ни одного.</p>
+<p>JavaScript не имеет отдельного типа данных для хранения дат. Однако, вы можете использовать объект {{jsxref("Date")}} и его методы для работы с датами и временном в вашем приложении. Объект <code>Date</code> имеет большое количество методов для записи, чтения и оперирования датой и временем, а свойств не имеет ни одного.</p>
<p>JavaScript оперирует датами во многом аналогично языку Java. Для работы с датой эти два языка имеют множество одинаковых методов, и оба они хранят даты как количество миллисекунд, прошедших с 00:00:00 1 Января 1970 года.</p>
@@ -307,7 +307,7 @@ var notANum = Number.NaN;
<li>"set" методы, служат для установки параметров объекта <code>Date</code>.</li>
<li>"get" методы, служат для получения параметров объекта <code>Date</code>.</li>
<li>"to" методы, служат для получения значения объекта <code>Date</code> в текстовом виде.</li>
- <li>"parse" и UTC методы, служат для распознавания дат и времени <font face="Consolas, Liberation Mono, Courier, monospace">из тектового формата</font>.</li>
+ <li>"parse" и UTC методы, служат для распознавания дат и времени <font face="Consolas, Liberation Mono, Courier, monospace">из текстового формата</font>.</li>
</ul>
<p>При помощи методов групп "get" и"set", вы можете получить и установить значения секунд, минут, часов, дня месяца, дня недели, месяца и года по отдельности. Отдельно выделим метод <code>getDay</code>, который возвращает день недели, однако соответствующего ему метода <code>setDay</code> не существует, потому-что день недели высчитывается автоматически. Все эти методы используют в своей работе целочисленные значения по следующим правилам:</p>
@@ -340,9 +340,9 @@ var daysLeft = (endYear.getTime() - today.getTime()) / msPerDay;
var daysLeft = Math.round(daysLeft); // возвращает количество дней, оставшихся до конца года
</pre>
-<p>Этот пример создает объект <code>Date</code> названный <code>today, который содержит текущую дату и время</code>. Затем, создается воспомогательный <code>Date</code> объект, названный <code>endYear,</code> которому устанавливаются значения, указывающие на конец года. После этого, при помощи расчитанного количества миллисекунд в сутках, вычисляется количество дней между  <code>today</code> и <code>endYear</code>, При этом используются метод <code>getTime</code> и округление, для получения количества полных дней.</p>
+<p>Этот пример создает объект <code>Date</code> названный <code>today, который содержит текущую дату и время</code>. Затем, создается вспомогательный <code>Date</code> объект, названный <code>endYear,</code> которому устанавливаются значения, указывающие на конец года. После этого, при помощи рассчитанного количества миллисекунд в сутках, вычисляется количество дней между  <code>today</code> и <code>endYear</code>, При этом используются метод <code>getTime</code> и округление, для получения количества полных дней.</p>
-<p>Метод <code>parse</code> полезен для присвоения значений существующим объектам <code>Date</code> из текстового формата. Например, следующий код использует мотоды <code>parse</code> и <code>setTime</code> чтобы установить значение переменной <code>IPOdate</code>:</p>
+<p>Метод <code>parse</code> полезен для присвоения значений существующим объектам <code>Date</code> из текстового формата. Например, следующий код использует методы <code>parse</code> и <code>setTime</code> чтобы установить значение переменной <code>IPOdate</code>:</p>
<pre class="brush: js">var IPOdate = new Date();
IPOdate.setTime(Date.parse("Aug 9, 1995"));
diff --git a/files/ru/web/javascript/guide/regular_expressions/character_classes/index.html b/files/ru/web/javascript/guide/regular_expressions/character_classes/index.html
index 08aa94b4c5..450547e418 100644
--- a/files/ru/web/javascript/guide/regular_expressions/character_classes/index.html
+++ b/files/ru/web/javascript/guide/regular_expressions/character_classes/index.html
@@ -33,16 +33,16 @@ translation_of: Web/JavaScript/Guide/Regular_Expressions/Character_Classes
<tr>
<td><code>.</code></td>
<td>
- <p>Точка имеет одно из следеющих смыслов:</p>
+ <p>Точка имеет одно из следующих смыслов:</p>
<ul>
- <li>Сопадение с любым одним символом <em>за исключение</em> символовов завершения строки: <code>\n</code>, <code>\r</code>, <code>\u2028</code> or <code>\u2029</code>. Например, <code>/.y/</code> совпадает "my" с "ay", и не совпадает с "yes" и "yes make my day".</li>
+ <li>Совпадение с любым одним символом <em>за исключение</em> символов завершения строки: <code>\n</code>, <code>\r</code>, <code>\u2028</code> or <code>\u2029</code>. Например, <code>/.y/</code> совпадает "my" с "ay", и не совпадает с "yes" и "yes make my day".</li>
<li>В набор символов, точка теряет свой специальный смысл и совпадает с литеральным символом точка.</li>
</ul>
- <p>Замечание. <code>m</code> флаг посика по множеству строк не меняет поведения точки. Чтобы найти воспадения во многострочном поиске можно использвать набор символов <code>[^]</code> — он сопадёт с любым символом включая символы заверешния строки.</p>
+ <p>Замечание. <code>m</code> флаг поиска по множеству строк не меняет поведения точки. Чтобы найти воспаления во многострочном поиске можно использовать набор символов <code>[^]</code> — он совпадает с любым символом включая символы завершения строки.</p>
- <p>В ES2018 добавили <code>s</code> "dotAll" флаг, который ползволяет точке <code>(.</code>) находить все символы включая симполвы переноса строк.</p>
+ <p>В ES2018 добавили <code>s</code> "dotAll" флаг, который позволяет точке <code>(.</code>) находить все символы включая символы переноса строк.</p>
</td>
</tr>
<tr>
@@ -60,25 +60,25 @@ translation_of: Web/JavaScript/Guide/Regular_Expressions/Character_Classes
<tr>
<td><code>\w</code></td>
<td>
- <p>Совпадет с любой бувенно-числовым симпволом из базового латинского алфавита включая нижнее подчёркивание.  Эквивалентно <code>[A-Za-z0-9_]</code>. Например, <code>/\w/</code> находит "a" в "apple", "5" в "$5.28", "3" в "3D" и "m" в "Émanuel".</p>
+ <p>Совпадет с любой буквенно-числовым символом из базового латинского алфавита включая нижнее подчёркивание.  Эквивалентно <code>[A-Za-z0-9_]</code>. Например, <code>/\w/</code> находит "a" в "apple", "5" в "$5.28", "3" в "3D" и "m" в "Émanuel".</p>
</td>
</tr>
<tr>
<td><code>\W</code></td>
<td>
- <p>Совпадет с любой бувенно-числовым, которое не является симпволом базового латинского алфавита, так же исключая нижнее подчёркивание.  Эквивалентно <code>[^A-Za-z0-9_]</code>. Например, <code>/\W/</code> или <code>/[^A-Za-z0-9_]/</code> находит "%" в "50%" и "É" in "Émanuel".</p>
+ <p>Совпадет с любой буквенно-числовым, которое не является символом базового латинского алфавита, так же исключая нижнее подчёркивание.  Эквивалентно <code>[^A-Za-z0-9_]</code>. Например, <code>/\W/</code> или <code>/[^A-Za-z0-9_]/</code> находит "%" в "50%" и "É" in "Émanuel".</p>
</td>
</tr>
<tr>
<td><code>\s</code></td>
<td>
- <p>Совпадет с любым пробельным символом, включая пробел, символ табуляции, символ подачи странцы, символ подачи строки и другие Unicode пробелы. Эквивалентно <code>[ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]</code>. Например, <code>/\s\w*/</code> находит " bar" в "foo bar".</p>
+ <p>Совпадет с любым пробельным символом, включая пробел, символ табуляции, символ подачи страницы, символ подачи строки и другие Unicode пробелы. Эквивалентно <code>[ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]</code>. Например, <code>/\s\w*/</code> находит " bar" в "foo bar".</p>
</td>
</tr>
<tr>
<td><code>\S</code></td>
<td>
- <p>Совпадет с любым симвовом, не являяющимся проблельным. Эквивалентно <code>[^ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]</code>. Например, <code>/\S\w*/</code> находит "foo" в "foo bar".</p>
+ <p>Совпадет с любым символом, не являющимся проблельным. Эквивалентно <code>[^ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]</code>. Например, <code>/\S\w*/</code> находит "foo" в "foo bar".</p>
</td>
</tr>
<tr>
@@ -103,7 +103,7 @@ translation_of: Web/JavaScript/Guide/Regular_Expressions/Character_Classes
</tr>
<tr>
<td><code>[\b]</code></td>
- <td>Совпадет с символом возарат назад (англ. backspace). Если вы ищите символ границы слова (<code>\b</code>), смотри <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Boundaries">Границы</a>.</td>
+ <td>Совпадет с символом возврат назад (англ. backspace). Если вы ищите символ границы слова (<code>\b</code>), смотри <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Boundaries">Границы</a>.</td>
</tr>
<tr>
<td><code>\0</code></td>
@@ -112,7 +112,7 @@ translation_of: Web/JavaScript/Guide/Regular_Expressions/Character_Classes
<tr>
<td><code>\c<em>X</em></code></td>
<td>
- <p>Совпадет с котрольным символом using <a href="https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%80%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F">каретную нотацию</a>, где "X" быква A–Z (соответствует кодам <code>U+0001</code><em>–</em><code>U+001F</code>). For example, <code>/\cM/</code> matches "\r" in "\r\n".</p>
+ <p>Совпадет с контрольным символом using <a href="https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%80%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F">каретную нотацию</a>, где "X" буква A–Z (соответствует кодам <code>U+0001</code><em>–</em><code>U+001F</code>). For example, <code>/\cM/</code> matches "\r" in "\r\n".</p>
</td>
</tr>
<tr>
@@ -125,7 +125,7 @@ translation_of: Web/JavaScript/Guide/Regular_Expressions/Character_Classes
</tr>
<tr>
<td><code>\u<em>{hhhh} </em>or <em>\u{hhhhh}</em></code></td>
- <td>(Только когда установлен фла <code>u</code>.) Совпадет с Unicode символом со значением  <code>U+<em>hhhh</em></code> или <code>U+<em>hhhhh</em></code> (шестнадцатеричные цифры).</td>
+ <td>(Только когда установлен флаг <code>u</code>.) Совпадет с Unicode символом со значением  <code>U+<em>hhhh</em></code> или <code>U+<em>hhhhh</em></code> (шестнадцатеричные цифры).</td>
</tr>
<tr>
<td><code>\</code></td>
@@ -133,12 +133,12 @@ translation_of: Web/JavaScript/Guide/Regular_Expressions/Character_Classes
<p>Определяет что последующий символ должен быть интерпретирован по особому или должен быть "экранирован. Это работает в двух вариантах:</p>
<ul>
- <li>Для символов, которые относятся к литералам, последующий символ - это специальный символ, который не должен быть интерпретирован, как литерал. Например, <code>/b/</code> совпадает с символом "b". Установ обратного слэша перед "b". Таким образом <code>/\b/</code>. Будет означать символ границы слова. </li>
- <li>Для символов, которые относятся к специальным, определяет что это не специальным символ, а должен быть интерепретирован, как литерал. Например, <code>*</code>  - это специальный символ, который означает 0 или любое другое совпадений предыдующего символа, Например <code>/a*/</code> совпадает с любым количестовм символов "a" идущих подряд (или 0 "a") <code>a, aaaa, aaaaaa</code>. Если специальный символ <code>*</code>, как литерал, то перед ним ставится обратных слэш. Например, <code>/a\*/</code> сопадает только с "a*".</li>
+ <li>Для символов, которые относятся к литералам, последующий символ - это специальный символ, который не должен быть интерпретирован, как литерал. Например, <code>/b/</code> совпадает с символом "b". Установ обратного слеша перед "b". Таким образом <code>/\b/</code>. Будет означать символ границы слова. </li>
+ <li>Для символов, которые относятся к специальным, определяет что это не специальным символ, а должен быть интерпретирован, как литерал. Например, <code>*</code>  - это специальный символ, который означает 0 или любое другое совпадений предыдущего символа, Например <code>/a*/</code> совпадает с любым количеством символов "a" идущих подряд (или 0 "a") <code>a, aaaa, aaaaaa</code>. Если специальный символ <code>*</code>, как литерал, то перед ним ставится обратных слэш. Например, <code>/a\*/</code> совпадает только с "a*".</li>
</ul>
<div class="blockIndicator note">
- <p>Чтобы найти литеральное совпадение с этим символова (<code>\</code> , экранируйте его самим же. Другими словами для поиска <code>\</code> используйте <code>/\\/</code>.</p>
+ <p>Чтобы найти литеральное совпадение с этим символов (<code>\</code> , экранируйте его самим же. Другими словами для поиска <code>\</code> используйте <code>/\\/</code>.</p>
</div>
</td>
</tr>
@@ -174,7 +174,7 @@ console.table(aliceExcerpt.match(regexpWordStartingWithA));
<h3 id="Поиски_слов_из_Unicode_символов">Поиски слов (из Unicode символов)</h3>
-<p>Вместо латинского алфавита, мы может использовать диапазаон Unicode символов для определения слова (благодаря этому мы можем работать с текстами написанным, например на русском или арабском языке or Arabic). Unicode содержит большинство символов используемых на планете, мы так же можем объединять их диапазоны и классы символов.</p>
+<p>Вместо латинского алфавита, мы может использовать диапазон Unicode символов для определения слова (благодаря этому мы можем работать с текстами написанным, например на русском или арабском языке or Arabic). Unicode содержит большинство символов используемых на планете, мы так же можем объединять их диапазоны и классы символов.</p>
<pre class="brush: js notranslate">var nonEnglishText = "Приключения Алисы в Стране чудес";
var regexpBMPWord = /([\u0000-\u0019\u0021-\uFFFF])+/gu;
diff --git a/files/ru/web/javascript/guide/regular_expressions/index.html b/files/ru/web/javascript/guide/regular_expressions/index.html
index 834df23a39..5ab9fe6e72 100644
--- a/files/ru/web/javascript/guide/regular_expressions/index.html
+++ b/files/ru/web/javascript/guide/regular_expressions/index.html
@@ -231,7 +231,7 @@ translation_of: Web/JavaScript/Guide/Regular_Expressions
<td>
<p>Соответствует цифровому символу. Эквивалентно выражению <code>[0-9]</code>.</p>
- <p>Например, <code>/\d/</code> or <code>/[0-9]/</code> соотвествует  '2' в "B2 is the suite number."</p>
+ <p>Например, <code>/\d/</code> or <code>/[0-9]/</code> соответствует  '2' в "B2 is the suite number."</p>
</td>
</tr>
<tr>
@@ -299,7 +299,7 @@ translation_of: Web/JavaScript/Guide/Regular_Expressions
<tr>
<td><a href="#special-backreference" id="special-backreference" name="special-backreference"><code>\<em>n</em></code></a></td>
<td>
- <p>Где <em>n</em> это положительное целое, обратная ссылка на последнюю найденную подстроку, соответствующую <em>n</em> , заключенную в круглые скобки в регуляном выражении (считая левые скобки).</p>
+ <p>Где <em>n</em> это положительное целое, обратная ссылка на последнюю найденную подстроку, соответствующую <em>n</em> , заключенную в круглые скобки в регулярном выражении (считая левые скобки).</p>
<p>Например, <code>/apple(,)\sorange\1/</code> соответствует 'apple, orange,' в "apple, orange, cherry, peach."</p>
</td>
@@ -310,11 +310,11 @@ translation_of: Web/JavaScript/Guide/Regular_Expressions
</tr>
<tr>
<td><a href="#special-hex-escape" id="special-hex-escape" name="special-hex-escape"><code>\xhh</code></a></td>
- <td>Соответствует символам кода hh (две шестнадцатиричные цифры)</td>
+ <td>Соответствует символам кода hh (две шестнадцатеричные цифры)</td>
</tr>
<tr>
<td><a href="#special-unicode-escape" id="special-unicode-escape" name="special-unicode-escape"><code>\uhhhh</code></a></td>
- <td>Соответствует символам кода hhhh (четыре шестнадцатиричные цифры).</td>
+ <td>Соответствует символам кода hhhh (четыре шестнадцатеричные цифры).</td>
</tr>
</tbody>
</table>
@@ -354,15 +354,15 @@ translation_of: Web/JavaScript/Guide/Regular_Expressions
</tr>
<tr>
<td><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/test" title="en-US/docs/JavaScript/Reference/Global_Objects/RegExp/test">test</a></code></td>
- <td>Метод <code>RegExp</code>, который тестирует совпадение в строке. Возвращет либо истину либо ложь.</td>
+ <td>Метод <code>RegExp</code>, который тестирует совпадение в строке. Возвращает либо истину либо ложь.</td>
</tr>
<tr>
<td><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/String/match" title="en-US/docs/JavaScript/Reference/Global_Objects/String/match">match</a></code></td>
- <td>Метод <code>String</code>, который выполняет поиск совпадения в строке. Он возвращет массив данных либо null если совпадения отсутствуют.</td>
+ <td>Метод <code>String</code>, который выполняет поиск совпадения в строке. Он возвращает массив данных либо null если совпадения отсутствуют.</td>
</tr>
<tr>
<td><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/String/search" title="en-US/docs/JavaScript/Reference/Global_Objects/String/search">search</a></code></td>
- <td>Метод <code>String,</code> который тестирует на совпадение в строке. Он возвращет индекс совпадения, или -1 если совпадений не будет найдено.</td>
+ <td>Метод <code>String,</code> который тестирует на совпадение в строке. Он возвращает индекс совпадения, или -1 если совпадений не будет найдено.</td>
</tr>
<tr>
<td><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/String/replace" title="en-US/docs/JavaScript/Reference/Global_Objects/String/replace">replace</a></code></td>
@@ -370,12 +370,12 @@ translation_of: Web/JavaScript/Guide/Regular_Expressions
</tr>
<tr>
<td><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/String/split" title="en-US/docs/JavaScript/Reference/Global_Objects/String/split">split</a></code></td>
- <td>Метод <code>String,</code> который использует регулярное выражение или фиксированую строку чтобы разбить строку на массив подстрок.</td>
+ <td>Метод <code>String,</code> который использует регулярное выражение или фиксированную строку чтобы разбить строку на массив подстрок.</td>
</tr>
</tbody>
</table>
-<p>Чтобы просто узнать есть ли в строке что либо соотвествующее шаблону, воспользуйтесь методами <code>test</code> или <code>search</code>; а чтобы получить больше информации пользуйтесь методами <code>exec</code> или <code>match</code> (хотя эти метода работают медленее). Если вы пользуютесь <code>exec</code> или <code>match</code> и если совпадения есть, эти методы вернут массив и обновленные свойства объекта ассоцированного регулярного выражения а также предопределенного объекта <code>RegExp </code>регулярного выражения. Если совпадений нет, метод <code>exec</code> вернет <code>null</code> (который сконвертируется в  <code>false</code>).</p>
+<p>Чтобы просто узнать есть ли в строке что либо соответствующее шаблону, воспользуйтесь методами <code>test</code> или <code>search</code>; а чтобы получить больше информации пользуйтесь методами <code>exec</code> или <code>match</code> (хотя эти метода работают медленнее). Если вы пользуетесь <code>exec</code> или <code>match</code> и если совпадения есть, эти методы вернут массив и обновленные свойства объекта ассоциированного регулярного выражения а также предопределенного объекта <code>RegExp </code>регулярного выражения. Если совпадений нет, метод <code>exec</code> вернет <code>null</code> (который сконвертируется в  <code>false</code>).</p>
<p>В след. примере, скрипт использует метод <code>exec</code> чтобы найти совпадения в строке.</p>
@@ -394,7 +394,7 @@ var myArray = myRe.exec("cdbbdbsbz");
var myArray = myRe.exec("cdbbdbsbz");
</pre>
-<p>С помощью этих скриптов, поиск совпадения завершается и возвращает массив и обновленные ствойства показанные  в след. таблице.</p>
+<p>С помощью этих скриптов, поиск совпадения завершается и возвращает массив и обновленные свойства показанные  в след. таблице.</p>
<table class="fullwidth-table">
<caption>Table 4.3 Результаты выполнения регулярного выражения</caption>
@@ -487,7 +487,7 @@ console.log(newstr);
<h3 id="Расширенный_поиск_с_флагами">Расширенный поиск с флагами</h3>
-<p>Регулярные выражения имеют четыре опциональных флага, которые делают возможным глобальный и регистронезависимый поиск. Флаги могут использоваться самостоятельно или вместе в любом порядке, а также могут являтся частью регулярного выражения.</p>
+<p>Регулярные выражения имеют четыре опциональных флага, которые делают возможным глобальный и регистронезависимый поиск. Флаги могут использоваться самостоятельно или вместе в любом порядке, а также могут являться частью регулярного выражения.</p>
<table style="line-height: 1.5;">
<caption>Флаги регулярных выражений</caption>
@@ -529,7 +529,7 @@ console.log(newstr);
<p>Обратите внимание, что флаги являются неотъемлемой частью регулярного выражения. Флаги не могут быть добавлены или удалены позднее.</p>
-<p>Для примера, <code>re = /\w+\s/g</code> создаёт регулярное выражение, которое ищет один или более символов, после котрых следует пробел и ищет данное совпадение на протяжении всей строки.</p>
+<p>Для примера, <code>re = /\w+\s/g</code> создаёт регулярное выражение, которое ищет один или более символов, после которых следует пробел и ищет данное совпадение на протяжении всей строки.</p>
<pre class="brush: js notranslate">var re = /\w+\s/g;
var str = "fee fi fo fum";
@@ -621,9 +621,9 @@ console.log(output.join("\n"));
<h3 id="Использование_спецсимволов_для_проверки_входных_данных">Использование спецсимволов для проверки входных данных</h3>
-<p>В след. примере, ожидается что пользователь введет телефонный номер и требуется проверить правильность символов набранных пользователем. Когда пользователь нажмет кнопку "Check", скрипт проверит правильность введеного номера. Если номер правильный (совпадает с символами определенными в регулярном выражении), то скрипт покажет сообщение благодарности для пользователя и подтвердит номер. Если нет, то скрипт проинформирует пользователя, что телефонный номер неправильный.</p>
+<p>В след. примере, ожидается что пользователь введет телефонный номер и требуется проверить правильность символов набранных пользователем. Когда пользователь нажмет кнопку "Check", скрипт проверит правильность введенного номера. Если номер правильный (совпадает с символами определенными в регулярном выражении), то скрипт покажет сообщение благодарности для пользователя и подтвердит номер. Если нет, то скрипт проинформирует пользователя, что телефонный номер неправильный.</p>
-<p>Внутри незахватывающих скобок <code>(?:, регуляное выражение ищет три цифры \d{3} ИЛИ |</code>  открывающую скобку <code>\(, затем три цифры \d{3}</code>, затем закрывающую скобку <code>\), </code>(закрывающая незахватывающая скобка <code>)</code>), затем тире, слэш, или десятичная точка, и когда это выражение найдено, запоминает символ <code>([-\/\.])</code>,  следующие за ним и запомненные три цифры <code>\d{3}</code>, следующее соответствие тире, слэша или десятичной точки <code>\1</code>, и следующие четыре цифры <code>\d{4}.</code></p>
+<p>Внутри незахватывающих скобок <code>(?:, регуляное выражение ищет три цифры \d{3} ИЛИ |</code>  открывающую скобку <code>\(, затем три цифры \d{3}</code>, затем закрывающую скобку <code>\), </code>(закрывающая незахватывающая скобка <code>)</code>), затем тире, слэш, или десятичная точка, и когда это выражение найдено, запоминает символ <code>([-\/\.])</code>,  следующие за ним и запомненные три цифры <code>\d{3}</code>, следующее соответствие тире, слеша или десятичной точки <code>\1</code>, и следующие четыре цифры <code>\d{4}.</code></p>
<p>Регулярное выражение ищет сначала 0 или одну открывающую скобку <code>\(?</code>, <code>затем три цифры \d{3}</code>, затем 0 или одну закрывающую скобку <code>\)?</code>, потом одно тире, слеш или точка и когда найдет это, запомнит символ<code>([-\/\.])</code>, след. три цифры<code> \d{3}</code>, followed by the remembered match of a dash, forward slash, or decimal point <code>\1</code>, followed by four digits <code>\d{4}</code>.</p>
diff --git a/files/ru/web/javascript/guide/text_formatting/index.html b/files/ru/web/javascript/guide/text_formatting/index.html
index 4316e2402a..3539b94652 100644
--- a/files/ru/web/javascript/guide/text_formatting/index.html
+++ b/files/ru/web/javascript/guide/text_formatting/index.html
@@ -12,7 +12,7 @@ translation_of: Web/JavaScript/Guide/Text_formatting
<h2 id="Строки">Строки</h2>
-<p>Строки используются для представления текстовых данных. Каждая строка - это набор "элементов", а каждый элемент - 16 битное беззнаковое целое значение. Элементы имеют определённые позиции. Так первый элемент имеет индекс 0, следущий - 1, и так далее. Длина строки - это количество элементов в ней. Вы можете создать строки, используя строковые литералы или объекты класса String.</p>
+<p>Строки используются для представления текстовых данных. Каждая строка - это набор "элементов", а каждый элемент - 16 битное беззнаковое целое значение. Элементы имеют определённые позиции. Так первый элемент имеет индекс 0, следующий - 1, и так далее. Длина строки - это количество элементов в ней. Вы можете создать строки, используя строковые литералы или объекты класса String.</p>
<h3 id="Строковые_литералы">Строковые литералы</h3>
@@ -37,9 +37,9 @@ console.log(str);
<p>Строки с более богатым содержимым <span><span class="article-text">можно создать с помощью ESC-последовательностей</span></span><span><span class="comment">(комбинация символов, обычно используемая для задания неотображаемых символов и символов, имеющих специальное значение)</span></span>:</p>
-<h4 id="Шестнадцатиричные_экранированные_последовательности">Шестнадцатиричные экранированные последовательности</h4>
+<h4 id="Шестнадцатеричные_экранированные_последовательности">Шестнадцатеричные экранированные последовательности</h4>
-<p>Число после \x трактуется как <a href="https://en.wikipedia.org/wiki/Hexadecimal">шестнадцатиричное.</a></p>
+<p>Число после \x трактуется как <a href="https://en.wikipedia.org/wiki/Hexadecimal">шестнадцатеричное.</a></p>
<pre class="brush: js">'\xA9' // "©"
</pre>
@@ -52,7 +52,7 @@ console.log(str);
<h4 id="Экранирование_элементов_кода_Unicode">Экранирование элементов кода Unicode</h4>
-<p>Нововведение ECMAScript 6, которое позволяет экранировать каждый Unicode символ, используя шестнадцатиричные значения (вплоть до <code>0x10FFFF</code>). С простым экранированием Unicode обычно требуется писать связанные друг с другом части по - отдельности для получения того же результата.</p>
+<p>Нововведение ECMAScript 6, которое позволяет экранировать каждый Unicode символ, используя шестнадцатеричные значения (вплоть до <code>0x10FFFF</code>). С простым экранированием Unicode обычно требуется писать связанные друг с другом части по - отдельности для получения того же результата.</p>
<p>Смотрите также {{jsxref("String.fromCodePoint()")}} или {{jsxref("String.prototype.codePointAt()")}}.</p>
@@ -79,7 +79,7 @@ var s2 = new String("2 + 2"); // Создание String объекта
eval(s1); // Вернет 4
eval(s2); // Вернет строку "2 + 2"</pre>
-<p>Объект <code>String</code> имеет свойство <code>length</code>, которое обозначает количество символов в строке. Например, в следующем коде x получит значение 13 потому, что "Hello, World!" содержит 13 символов, каждый из которых представлен одним кодом UTF-16. Вы можете обратиться к каждому коду с помощью квадратных скобок. Вы не можете изменять отдельные символы строки, т.к. строки это массиво-подобные неизменяемые объекты:</p>
+<p>Объект <code>String</code> имеет свойство <code>length</code>, которое обозначает количество символов в строке. Например, в следующем коде x получит значение 13 потому, что "Hello, World!" содержит 13 символов, каждый из которых представлен одним кодом UTF-16. Вы можете обратиться к каждому коду с помощью квадратных скобок. Вы не можете изменять отдельные символы строки, т.к. строки это массива-подобные неизменяемые объекты:</p>
<pre class="brush: js">var mystring = "Hello, World!";
var x = mystring.length;
@@ -133,7 +133,7 @@ mystring[0]; // Вернет: "H"
<tr>
<td>{{jsxref("String.substring", "substring")}}, {{jsxref("String.substr", "substr")}}</td>
<td>
- <p>Возвращет указанную часть строки по начальному и конечному индексам, либо по начальному индексу и длине.</p>
+ <p>Возвращает указанную часть строки по начальному и конечному индексам, либо по начальному индексу и длине.</p>
</td>
</tr>
<tr>
diff --git a/files/ru/web/javascript/guide/using_promises/index.html b/files/ru/web/javascript/guide/using_promises/index.html
index d104f15d9e..fea85730ac 100644
--- a/files/ru/web/javascript/guide/using_promises/index.html
+++ b/files/ru/web/javascript/guide/using_promises/index.html
@@ -15,9 +15,9 @@ original_slug: Web/JavaScript/Guide/Ispolzovanie_promisov
<p class="summary">{{jsxref("Promise")}} (промис, англ. "обещание") - это объект, представляющий результат успешного или неудачного завершения асинхронной операции. Так как большинство людей пользуются уже созданными промисами, это руководство начнем с объяснения использования вернувшихся промисов до объяснения принципов создания. </p>
-<p>В сущности, промис - это возвращаемый объект, в который вы записываете два коллбэка вместо того, чтобы передать их функции.</p>
+<p>В сущности, промис - это возвращаемый объект, в который вы записываете два колбэка вместо того, чтобы передать их функции.</p>
-<p>Например, вместо старомодной функции, которая принимает два коллбэка и вызывает один из них в зависимости от успешного или неудачного завершения операции:</p>
+<p>Например, вместо старомодной функции, которая принимает два колбэка и вызывает один из них в зависимости от успешного или неудачного завершения операции:</p>
<pre class="brush: js line-numbers language-js">function doSomethingOldStyle(successCallback, failureCallback) {
console.log("Готово.");
@@ -40,7 +40,7 @@ function failureCallback(error) {
doSomethingOldStyle(successCallback, failureCallback);
</pre>
-<p>…современные функции возвращают промис, в который вы записываете ваши коллбэки:</p>
+<p>…современные функции возвращают промис, в который вы записываете ваши колбэки:</p>
<pre class="brush: js line-numbers language-js">function doSomething() {
return new Promise((resolve, reject) =&gt; {
@@ -65,12 +65,12 @@ promise.then(successCallback, failureCallback);</pre>
<h2 id="Гарантии">Гарантии</h2>
-<p>В отличие от старомодных переданных коллбэков промис дает некоторые гарантии:</p>
+<p>В отличие от старомодных переданных колбэков промис дает некоторые гарантии:</p>
<ul>
- <li>Коллбэки никогда не будут вызваны до <a href="/ru/docs/Web/JavaScript/EventLoop#Никогда_не_блокируется">завершения обработки текущего события</a> в событийном цикле JavaScript.</li>
- <li>Коллбеки, добавленные через .then даже <em>после </em>успешного или неудачного завершения асинхронной операции, будут также вызваны.</li>
- <li>Несколько коллбэков может быть добавлено вызовом .then нужное количество раз, и они будут выполняться независимо в порядке добавления.</li>
+ <li>Колбэки никогда не будут вызваны до <a href="/ru/docs/Web/JavaScript/EventLoop#Никогда_не_блокируется">завершения обработки текущего события</a> в событийном цикле JavaScript.</li>
+ <li>Колбэки, добавленные через .then даже <em>после </em>успешного или неудачного завершения асинхронной операции, будут также вызваны.</li>
+ <li>Несколько колбэков может быть добавлено вызовом .then нужное количество раз, и они будут выполняться независимо в порядке добавления.</li>
</ul>
<p>Но наиболее непосредственная польза от промисов - цепочка вызовов (<em>chaining</em>).</p>
@@ -90,11 +90,11 @@ let promise2 = promise.then(successCallback, failureCallback);
<pre class="brush: js">let promise2 = doSomething().then(successCallback, failureCallback);
</pre>
-<p>Второй промис представляет завершение не только <code>doSomething()</code>, но и функций <code>successCallback</code> или <code>failureCallback</code>, переданных Вами, а они тоже могут быть асинхронными функциями, возвращающими промис. В этом случае все коллбэки, добавленные к <code>promise2</code> будут поставлены в очередь за промисом, возвращаемым <code>successCallback</code> или <code>failureCallback</code>.</p>
+<p>Второй промис представляет завершение не только <code>doSomething()</code>, но и функций <code>successCallback</code> или <code>failureCallback</code>, переданных Вами, а они тоже могут быть асинхронными функциями, возвращающими промис. В этом случае все колбэки, добавленные к <code>promise2</code> будут поставлены в очередь за промисом, возвращаемым <code>successCallback</code> или <code>failureCallback</code>.</p>
<p>По сути, каждый вызванный промис означает успешное завершение предыдущих шагов в цепочке.</p>
-<p>Раньше выполнение нескольких асинхронных операций друг за другом приводило к классической "Вавилонской башне" коллбэков:</p>
+<p>Раньше выполнение нескольких асинхронных операций друг за другом приводило к классической "Вавилонской башне" колбэков:</p>
<pre class="brush: js">doSomething(function(result) {
doSomethingElse(result, function(newResult) {
@@ -105,7 +105,7 @@ let promise2 = promise.then(successCallback, failureCallback);
}, failureCallback);
</pre>
-<p>В современных функциях мы записываем коллбэки в возвращаемые промисы - формируем цепочку промисов:</p>
+<p>В современных функциях мы записываем колбэки в возвращаемые промисы - формируем цепочку промисов:</p>
<pre class="brush: js">doSomething().then(function(result) {
return doSomethingElse(result);
@@ -130,7 +130,7 @@ let promise2 = promise.then(successCallback, failureCallback);
.catch(failureCallback);
</pre>
-<p><strong>Важно:</strong> Всегда возвращайте промисы в return, иначе коллбэки не будут сцеплены и ошибки могут быть не пойманы (стрелочные функции неявно возвращают результат, если скобки {} вокруг тела функции опущены).</p>
+<p><strong>Важно:</strong> Всегда возвращайте промисы в return, иначе колбэки не будут сцеплены и ошибки могут быть не пойманы (стрелочные функции неявно возвращают результат, если скобки {} вокруг тела функции опущены).</p>
<h3 id="Цепочка_вызовов_после_catch">Цепочка вызовов после catch</h3>
@@ -199,17 +199,17 @@ let promise2 = promise.then(successCallback, failureCallback);
<p>Работа данного кода основана на промисах. Для примера здесь используется функция <code>doSomething()</code>, которая встречалась ранее. Вы можете прочитать больше о синтаксисе <a href="https://developers.google.com/web/fundamentals/getting-started/primers/async-functions">здесь</a></p>
-<p>Примисы решают основную проблему  пирамид, обработку всех ошибок, даже вызовов исключений и программных ошибок. Это основа для функционального построения асинхронных операций.</p>
+<p>Промисы решают основную проблему  пирамид, обработку всех ошибок, даже вызовов исключений и программных ошибок. Это основа для функционального построения асинхронных операций.</p>
-<h2 id="Создание_промиса_вокруг_старого_коллбэка">Создание промиса вокруг старого коллбэка</h2>
+<h2 id="Создание_промиса_вокруг_старого_колбэка">Создание промиса вокруг старого колбэка</h2>
<p>{{jsxref("Promise")}} может быть создан с помощью конструктора. Это может понадобится только для старых API.</p>
-<p>В идеале, все асинхронные функции уже должны возвращать промис. Но увы, некоторые APIs до сих пор ожидают успешного или неудачного  коллбека переданных по старинке. Типичный пример: {{domxref("WindowTimers.setTimeout", "setTimeout()")}} функция:</p>
+<p>В идеале, все асинхронные функции уже должны возвращать промис. Но увы, некоторые APIs до сих пор ожидают успешного или неудачного  колбэка переданных по старинке. Типичный пример: {{domxref("WindowTimers.setTimeout", "setTimeout()")}} функция:</p>
<pre><code>setTimeout(() =&gt; saySomething("10 seconds passed"), 10000);</code></pre>
-<p>Смешивание старого коллбэк-стиля и промисов проблематично. В случае неудачного завершения <code>saySomething</code> или программной ошибки, нельзя обработать ошибку.</p>
+<p>Смешивание старого колбэк-стиля и промисов проблематично. В случае неудачного завершения <code>saySomething</code> или программной ошибки, нельзя обработать ошибку.</p>
<p>К с частью мы можем обернуть функцию в промис. Хороший тон оборачивать проблематичные функции на самом низком возможном уровне, и больше никогда их не вызывать на прямую:</p>
@@ -231,7 +231,7 @@ wait(10000).then(() =&gt; saySomething("10 seconds")).catch(failureCallback);</c
<p>Фактически, мы превращаем массив асинхронных функций в цепочку промисов равносильно: <code>Promise.resolve().then(func1).then(func2);</code></p>
-<p>Это также можно сделать, объеденив композицию в функцию, в функциональном стиле программирования:</p>
+<p>Это также можно сделать, объединив композицию в функцию, в функциональном стиле программирования:</p>
<pre><code>const applyAsync = (acc,val) =&gt; acc.then(val);
const composeAsync = (...funcs) =&gt; x =&gt; funcs.reduce(applyAsync, Promise.resolve(x));</code></pre>
@@ -241,7 +241,7 @@ const composeAsync = (...funcs) =&gt; x =&gt; funcs.reduce(applyAsync, Promise.r
<pre><code>const transformData = composeAsync(func1, asyncFunc1, asyncFunc2, func2);
transformData(data);</code></pre>
-<p>В ECMAScript 2017, последовательные композиции могут быть выполненны более простым способом с помощью async/await:</p>
+<p>В ECMAScript 2017, последовательные композиции могут быть выполнены более простым способом с помощью async/await:</p>
<pre><code>for (const f of [func1, func2]) {
await f();
@@ -249,7 +249,7 @@ transformData(data);</code></pre>
<h2 id="Порядок_выполнения">Порядок выполнения</h2>
-<p>Чтобы избежать сюрпризов, функции, переданные в <code>then</code> никогда не будут вызванны синхронно, даже с уже разрешенным промисом:</p>
+<p>Чтобы избежать сюрпризов, функции, переданные в <code>then</code> никогда не будут вызваны синхронно, даже с уже разрешенным промисом:</p>
<pre><code>Promise.resolve().then(() =&gt; console.log(2));
console.log(1); // 1, 2</code></pre>
@@ -264,7 +264,7 @@ console.log(1); // 1, 2, 3, 4</code></pre>
<h2 id="Вложенность">Вложенность</h2>
-<p>Простые цепочки promise лучше оставлять без вложений, так как вложеность может быть результатом небрежной структуры. Смотрите <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Guide/Ispolzovanie_promisov$edit#Common_mistakes">распространенные ошибки</a>.</p>
+<p>Простые цепочки promise лучше оставлять без вложений, так как вложенность может быть результатом небрежной структуры. Смотрите <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Guide/Ispolzovanie_promisov$edit#Common_mistakes">распространенные ошибки</a>.</p>
<p>Вложенность - это управляющая структура, ограничивающая область действия операторов catch. В частности, вложенный catch только перехватывает сбои в своей области и ниже, а не ошибки выше в цепочке за пределами вложенной области. При правильном использовании это дает большую точность в извлечение ошибок:</p>
@@ -295,7 +295,7 @@ doSomething().then(function(result) {
<p>Вторая ошибка это излишняя вложенность, включая первую ошибку. Вложенность также ограничивает область видимости внутренних обработчиков ошибок, если это не то чего хотел разработчик, это может привести к необработанным ошибкам. Примером этого является <a href="https://stackoverflow.com/questions/23803743/what-is-the-explicit-promise-construction-antipattern-and-how-do-i-avoid-it">пример как не нужно создавать обещания</a>, который комбинирует вложенность с чрезмерным использованием конструктора обещаний для оборачивания кода который уже использует промисы.</p>
-<p>Третяя ошибка это забыть закончить цепочку ключевым словом <code>catch</code>. Незаконченные цепочки приводят к необработанным отторжениям обещаний в большинстве браузеров.</p>
+<p>Третья ошибка это забыть закончить цепочку ключевым словом <code>catch</code>. Незаконченные цепочки приводят к необработанным отторжениям обещаний в большинстве браузеров.</p>
<p>Хорошим примером является всегда либо возвращать либо заканчивать цепочки обещаний, и как только вы получаете новое обещание, возвращайте его сразу же, чтобы не усложнять код излишней вложенностью:</p>
diff --git a/files/ru/web/javascript/guide/working_with_objects/index.html b/files/ru/web/javascript/guide/working_with_objects/index.html
index 34da02e599..88742ac122 100644
--- a/files/ru/web/javascript/guide/working_with_objects/index.html
+++ b/files/ru/web/javascript/guide/working_with_objects/index.html
@@ -9,7 +9,7 @@ translation_of: Web/JavaScript/Guide/Working_with_Objects
<h2 id="Обзор_объектов">Обзор объектов</h2>
-<p>Объекты в JavaScript, как и во многих других языках программирования, похожи на объекты реальной жизни. Концепцию объектов JavaScript легче понять, проводя паралелли с реально существующими в жизни объектами.</p>
+<p>Объекты в JavaScript, как и во многих других языках программирования, похожи на объекты реальной жизни. Концепцию объектов JavaScript легче понять, проводя параллели с реально существующими в жизни объектами.</p>
<p>В JavaScript объект — это самостоятельная единица, имеющая свойства и определенный тип. Сравним, например, с чашкой. У чашки есть цвет, форма, вес, материал, из которого она сделана, и т.д. Точно так же, объекты JavaScript имеют свойства, которые определяют их характеристики.</p>
@@ -22,7 +22,7 @@ translation_of: Web/JavaScript/Guide/Working_with_Objects
</pre>
</div>
-<p>Как и все переменные JavaScript, имя объекта (которое тоже может быть переменной) и имя свойства являются чуствительными к регистру. Вы можете определить свойство указав его значение. Например, давайте создадим объект <code>myCar</code> и определим его свойства <code>make</code>, <code>model</code>, и <code>year</code> следующим образом:</p>
+<p>Как и все переменные JavaScript, имя объекта (которое тоже может быть переменной) и имя свойства являются чувствительными к регистру. Вы можете определить свойство указав его значение. Например, давайте создадим объект <code>myCar</code> и определим его свойства <code>make</code>, <code>model</code>, и <code>year</code> следующим образом:</p>
<pre class="brush: js">var myCar = new Object();
myCar.make = "Ford";
@@ -232,7 +232,7 @@ var car2 = new Car("Nissan", "300ZX", 1992, ken);
<pre class="brush: js">car1.color = "black";
</pre>
-<p>добавляет свойство <code>color</code> к car1, и устанавливаего его значение равным "black." Как бы там ни было, это не влияет на любые другие объекты. Чтобы добавить новое свойство всем объектам одного типа, вы должны добавить свойство в определение типа объекта <code>car</code>.</p>
+<p>добавляет свойство <code>color</code> к car1, и устанавливает его значение равным "black." Как бы там ни было, это не влияет на любые другие объекты. Чтобы добавить новое свойство всем объектам одного типа, вы должны добавить свойство в определение типа объекта <code>car</code>.</p>
<h3 id="Использование_метода_Object.create">Использование метода Object.create</h3>
@@ -265,7 +265,7 @@ fish.displayType(); // Выведет:Fishes</pre>
<p>Это ограничение налагается когда вы создаете объект и его свойства с помощью функции конструктора (как мы это делали ранее с типом <em>Car </em>) и когда вы определяете индивидуальные свойства явно (например, <code>myCar.color = "red"</code>). Если вы изначально определили свойство объекта через индекс, например <code>myCar[5] = "25 mpg"</code>, то впоследствии сослаться на это свойство можно только так <code>myCar[5]</code>.</p>
-<p>Исключение из правил <span style="line-height: 1.5;">—</span> объекты, отображаемые из HTML, например массив<code> forms</code>. Вы всегда можете сослаться на объекты в этих массивах или используя их индекс (который основывается на порядке появления в HTML документе), или по их именам (если таковые были определены). Например, если второй html-тег <code>&lt;FORM&gt;</code> в документе имеет значение аттрибута <code>NAME</code> равное "myForm", вы можете сослаться на эту форму вот так: <code>document.forms[1]</code> или <code>document.forms["myForm"]</code> или <code>document.myForm</code>.</p>
+<p>Исключение из правил <span style="line-height: 1.5;">—</span> объекты, отображаемые из HTML, например массив<code> forms</code>. Вы всегда можете сослаться на объекты в этих массивах или используя их индекс (который основывается на порядке появления в HTML документе), или по их именам (если таковые были определены). Например, если второй html-тег <code>&lt;FORM&gt;</code> в документе имеет значение атрибута <code>NAME</code> равное "myForm", вы можете сослаться на эту форму вот так: <code>document.forms[1]</code> или <code>document.forms["myForm"]</code> или <code>document.myForm</code>.</p>
<h2 id="Определение_свойств_для_типа_объекта">Определение свойств для типа объекта</h2>
@@ -460,7 +460,7 @@ delete g;
<h2 id="Сравнение_объектов">Сравнение объектов</h2>
-<p>В JavaScript объекты имеют ссылочный тип. Два отдельных объекта никогда не будут равными, даже если они имеют равный набор свойств. Только сравнение двух ссылок на один и тотже объект вернет true.</p>
+<p>В JavaScript объекты имеют ссылочный тип. Два отдельных объекта никогда не будут равными, даже если они имеют равный набор свойств. Только сравнение двух ссылок на один и тот же объект вернет true.</p>
<pre class="brush: js"><code>// Две переменных ссылаются на два объекта с одинаковыми свойствами
var fruit = {name: 'apple'};