From 980fe00a74a9ad013b945755415ace2e5429c3c2 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Wed, 27 Oct 2021 02:31:24 +0300 Subject: [RU] Remove notranslate (#2874) --- .../reference/statements/async_function/index.html | 10 +++--- .../reference/statements/class/index.html | 8 ++--- .../reference/statements/for...of/index.html | 36 +++++++++++----------- 3 files changed, 27 insertions(+), 27 deletions(-) (limited to 'files/ru/web/javascript/reference/statements') 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 7e07f940cf..d46b1039e3 100644 --- a/files/ru/web/javascript/reference/statements/async_function/index.html +++ b/files/ru/web/javascript/reference/statements/async_function/index.html @@ -13,7 +13,7 @@ translation_of: Web/JavaScript/Reference/Statements/async_function

Синтаксис

-
async function name([param[, param[, ... param]]]) {
+
async function name([param[, param[, ... param]]]) {
    statements
 }
 
@@ -49,7 +49,7 @@ translation_of: Web/JavaScript/Reference/Statements/async_function

Простой пример

-
function resolveAfter2Seconds(x) {
+
function resolveAfter2Seconds(x) {
   return new Promise(resolve => {
     setTimeout(() => {
       resolve(x);
@@ -86,7 +86,7 @@ add2(10).then(v => {
 
 

Когда функция async выбрасывает исключение

-
async function throwsValue() {
+
async function throwsValue() {
     throw new Error('oops');
 }
 throwsValue()
@@ -112,7 +112,7 @@ throwsValue()
 
 

API, которое возвращает {{jsxref("Promise")}}, будет возвращать значение в цепочке, тем самым разбивая функцию на много частей. Рассматривая следующий код:

-
function getProcessedData(url) {
+
function getProcessedData(url) {
   return downloadData(url) // returns a promise
     .catch(e => {
       return downloadFallbackData(url) // returns a promise
@@ -125,7 +125,7 @@ throwsValue()
 
 

он может быть переписан с одним использованием функции async:

-
async function getProcessedData(url) {
+
async function getProcessedData(url) {
   let v;
   try {
     v = await downloadData(url);
diff --git a/files/ru/web/javascript/reference/statements/class/index.html b/files/ru/web/javascript/reference/statements/class/index.html
index f2caebe0fe..e0c1dbd9f2 100644
--- a/files/ru/web/javascript/reference/statements/class/index.html
+++ b/files/ru/web/javascript/reference/statements/class/index.html
@@ -13,7 +13,7 @@ translation_of: Web/JavaScript/Reference/Statements/class
 
 

Синтаксис

-
class name [extends] {
+
class name [extends] {
   // тело класса
 }
 
@@ -30,7 +30,7 @@ translation_of: Web/JavaScript/Reference/Statements/class

В следующем примере сначала определяется класс с именем Polygon, затем он наследуется для создания класса Square. Заметьте, что super(), используемый в конструкторе, может быть использован только в конструкторе и должен быть вызван до того, как будет использовано ключевое слово this.

-
class Polygon {
+
class Polygon {
   constructor(height, width) {
     this.name = 'Polygon';
     this.height = height;
@@ -50,13 +50,13 @@ class Square extends Polygon {
 
 

Переопределение класса с помощью class declaration вызовет ошибку типа.

-
class Foo {};
+
class Foo {};
 class Foo {}; // Uncaught TypeError: Identifier 'Foo' has already been declared
 

Та же ошибка будет вызвана, если класс был определён перед использованием class declaration.

-
var Foo = class {};
+
var Foo = class {};
 class Foo {}; // Uncaught TypeError: Identifier 'Foo' has already been declared
 
 
diff --git a/files/ru/web/javascript/reference/statements/for...of/index.html b/files/ru/web/javascript/reference/statements/for...of/index.html index 5d056de8c4..7641d14bad 100644 --- a/files/ru/web/javascript/reference/statements/for...of/index.html +++ b/files/ru/web/javascript/reference/statements/for...of/index.html @@ -16,7 +16,7 @@ translation_of: Web/JavaScript/Reference/Statements/for...of

Синтаксис

-
for (variable of iterable) {
+
for (variable of iterable) {
   statement
 }
 
@@ -32,7 +32,7 @@ translation_of: Web/JavaScript/Reference/Statements/for...of

Обход {{jsxref("Array")}}

-
let iterable = [10, 20, 30];
+
let iterable = [10, 20, 30];
 
 for (let value of iterable) {
   value += 1;
@@ -44,7 +44,7 @@ for (let value of iterable) {
 
 

Можно также использовать const вместо let, если не нужно переназначать переменные внутри блока.

-
let iterable = [10, 20, 30];
+
let iterable = [10, 20, 30];
 
 for (const value of iterable) {
   console.log(value);
@@ -55,7 +55,7 @@ for (const value of iterable) {
 
 

Обход {{jsxref("String")}}

-
let iterable = 'boo';
+
let iterable = 'boo';
 
 for (let value of iterable) {
   console.log(value);
@@ -66,7 +66,7 @@ for (let value of iterable) {
 
 

Обход {{jsxref("TypedArray")}}

-
let iterable = new Uint8Array([0x00, 0xff]);
+
let iterable = new Uint8Array([0x00, 0xff]);
 
 for (let value of iterable) {
   console.log(value);
@@ -76,7 +76,7 @@ for (let value of iterable) {
 
 

Обход {{jsxref("Map")}}

-
let iterable = new Map([['a', 1], ['b', 2], ['c', 3]]);
+
let iterable = new Map([['a', 1], ['b', 2], ['c', 3]]);
 
 for (let entry of iterable) {
   console.log(entry);
@@ -94,7 +94,7 @@ for (let [key, value] of iterable) {
 
 

Обход {{jsxref("Set")}}

-
let iterable = new Set([1, 1, 2, 2, 3, 3]);
+
let iterable = new Set([1, 1, 2, 2, 3, 3]);
 
 for (let value of iterable) {
   console.log(value);
@@ -105,7 +105,7 @@ for (let value of iterable) {
 
 

Обход объекта {{jsxref("arguments")}} 

-
(function() {
+
(function() {
   for (let argument of arguments) {
     console.log(argument);
   }
@@ -119,7 +119,7 @@ for (let value of iterable) {
 
 

Обход DOM коллекций наподобие {{domxref("NodeList")}}: следующий пример добавляет класс read параграфам, являющимся непосредственными потомками статей:

-
// Примечание: работает только на платформах, где
+
// Примечание: работает только на платформах, где
 // реализован NodeList.prototype[Symbol.iterator]
 let articleParagraphs = document.querySelectorAll('article > p');
 
@@ -131,7 +131,7 @@ for (let paragraph of articleParagraphs) {
 
 

В циклах for...of  аварийный выход осуществляется через breakthrow или return. Во всех вариантах итератор завершается.

-
function* foo(){
+
function* foo(){
   yield 1;
   yield 2;
   yield 3;
@@ -147,7 +147,7 @@ for (let o of foo()) {
 
 

Вы можете выполнять обход генераторов, вот пример:

-
function* fibonacci() { // функция-генератор
+
function* fibonacci() { // функция-генератор
     let [prev, curr] = [0, 1];
     for (;;) {
         [prev, curr] = [curr, prev + curr];
@@ -167,7 +167,7 @@ for (let n of fibonacci()) {
 
 

Генераторы нельзя использовать дважды, даже если цикл for...of  завершится аварийно, например, через оператор {{jsxref("Statements/break", "break")}} . При выходе из цикла генератор завершается, и любые попытки получить из него значение обречены.

-
var gen = (function *(){
+
var gen = (function *(){
   yield 1;
   yield 2;
   yield 3;
@@ -186,7 +186,7 @@ for (let o of gen) {
 
 

Кроме того, можно сделать обход объекта, явно реализующего iterable:

-
var iterable = {
+
var iterable = {
   [Symbol.iterator]() {
     return {
       i: 0,
@@ -217,7 +217,7 @@ for (var value of iterable) {
 
 

Следующий пример показывает различия в работе циклов for...of и for...in при обходе {{jsxref("Array")}}.

-
Object.prototype.objCustom = function() {};
+
Object.prototype.objCustom = function() {};
 Array.prototype.arrCustom = function() {};
 
 let iterable = [3, 5, 7];
@@ -239,7 +239,7 @@ for (let i of iterable) {
 
 

Разберёмся шаг за шагом в вышеописанном коде.

-
Object.prototype.objCustom = function() {};
+
Object.prototype.objCustom = function() {};
 Array.prototype.arrCustom = function() {};
 
 let iterable = [3, 5, 7];
@@ -247,13 +247,13 @@ iterable.foo = 'hello';

Каждый объект унаследует метод objCustom и каждый массив {{jsxref("Array")}} унаследует метод arrCustom благодаря созданию их в {{jsxref("Object.prototype")}} и {{jsxref("Array.prototype")}}. Объект iterable унаследует методы objCustom и arrCustom из-за наследования через прототип.

-
for (let i in iterable) {
+
for (let i in iterable) {
   console.log(i); // выведет 0, 1, 2, "foo", "arrCustom", "objCustom"
 }

Цикл выводит только перечисляемые свойства объекта iterable, в порядке их создания. Он не выводит значения 357 и hello поскольку они не являются перечисляемыми, фактически они вообще не являются свойствами, они являются значениями. Выводятся же имена свойств и методов, например arrCustom и objCustom. Если вы ещё не совсем поняли, по каким свойствам осуществляется обход, вот дополнительное объяснение того, как работает {{jsxref("Statements/for...in", "array iteration and for...in", "#Array_iteration_and_for...in")}} .

-
for (let i in iterable) {
+
for (let i in iterable) {
   if (iterable.hasOwnProperty(i)) {
     console.log(i); // выведет 0, 1, 2, "foo"
   }
@@ -261,7 +261,7 @@ iterable.foo = 'hello';

Цикл аналогичен предыдущему, но использует {{jsxref("Object.prototype.hasOwnProperty()", "hasOwnProperty()")}} для проверки того, собственное ли это свойство объекта или унаследованное. Выводятся только собственные свойства. Имена 012 и foo принадлежат только экземпляру объекта (не унаследованы). Методы arrCustom и objCustom не выводятся, поскольку они унаследованы.

-
for (let i of iterable) {
+
for (let i of iterable) {
   console.log(i); // выведет 3, 5, 7
 }
-- cgit v1.2.3-54-g00ecf