From 5e48f8a9807acb369fa0228d16655fc044f4a17b Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Wed, 15 Sep 2021 22:48:53 +0300 Subject: Unification translation of rest parameters (#2470) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Унификация термина "rest parameters" * Update files/ru/web/javascript/reference/functions/index.html Co-authored-by: Maxim Postautov <54762420+mpstv@users.noreply.github.com> Co-authored-by: Maxim Postautov <54762420+mpstv@users.noreply.github.com> --- .../a_re-introduction_to_javascript/index.html | 4 ++-- files/ru/web/javascript/guide/functions/index.html | 6 ++--- .../reference/functions/arguments/index.html | 12 +++++----- .../reference/functions/arrow_functions/index.html | 4 ++-- .../web/javascript/reference/functions/index.html | 8 +++---- .../reference/functions/rest_parameters/index.html | 28 +++++++++++----------- files/ru/web/javascript/reference/index.html | 2 +- .../reference/trailing_commas/index.html | 2 +- 8 files changed, 33 insertions(+), 33 deletions(-) (limited to 'files/ru') diff --git a/files/ru/web/javascript/a_re-introduction_to_javascript/index.html b/files/ru/web/javascript/a_re-introduction_to_javascript/index.html index 01888a792b..7a93230090 100644 --- a/files/ru/web/javascript/a_re-introduction_to_javascript/index.html +++ b/files/ru/web/javascript/a_re-introduction_to_javascript/index.html @@ -574,7 +574,7 @@ add(2, 3, 4, 5); // 14 avg(2, 3, 4, 5); // 3.5 -

Это довольно  полезно, но при этом кажется излишне подробным. Для уменьшения количества кода взглянем на замену использования массива аргументов способом  Rest parameter syntax. В этом случае мы можем передавать в функцию любое количество аргументов, сохраняя код минималистичным. Rest parameter operator используется в списке параметров функции в формате: ...variable и включает в себя целый список аргументов, с которыми функция будет вызвана. Мы будем также использовать замену цикла for  циклом for...of для получения значений, которые будет содержать наша переменная.

+

Это довольно  полезно, но при этом кажется излишне подробным. Для уменьшения количества кода взглянем на замену использования массива аргументов синтаксисом остаточных параметров. В этом случае мы можем передавать в функцию любое количество аргументов, сохраняя код минималистичным. Оператор остаточных параметров используется в списке параметров функции в формате: ...variable и включает в себя целый список аргументов, с которыми функция будет вызвана. Мы будем также использовать замену цикла for  циклом for...of для получения значений, которые будет содержать наша переменная.

function avg(...args) {
   var sum = 0;
@@ -828,7 +828,7 @@ s.toString(); // "<Person: Simon Willison>"
} -

Это не точная копия new, так как она не устанавливает цепочку прототипов (это сложно ). Метод apply() применяется не очень часто, но знать его важно. В примере выше, запись ...args (включая многоточие) называется "rest arguments"— она включает в себя все оставшиеся аргументы.

+

Это не точная копия new, так как она не устанавливает цепочку прототипов (это сложно ). Метод apply() применяется не очень часто, но знать его важно. В примере выше, синтаксис ...args (включая многоточие) называется остаточными параметрами, потому что они включают в себя все оставшиеся аргументы.

Вызов

diff --git a/files/ru/web/javascript/guide/functions/index.html b/files/ru/web/javascript/guide/functions/index.html index 433c6647db..28385a4c3e 100644 --- a/files/ru/web/javascript/guide/functions/index.html +++ b/files/ru/web/javascript/guide/functions/index.html @@ -526,7 +526,7 @@ myConcat('. ', 'sage', 'basil', 'oregano', 'pepper', 'parsley');

Параметры функции

-

Начиная с ECMAScript 2015 появились два новых вида параметров: параметры по умолчанию (default parameters) и оставшиеся параметры (rest parameters).

+

Начиная с ECMAScript 2015 появились два новых вида параметров: параметры по умолчанию (default parameters) и остаточные параметры (rest parameters).

Параметры по умолчанию (Default parameters)

@@ -552,9 +552,9 @@ multiply(5); // 5

Для более детального рассмотрения ознакомьтесь с параметрами по умолчанию.

-

Оставшиеся параметры (Rest parameters)

+

Остаточные параметры (Rest parameters)

-

Оставшиеся параметры предоставляют нам массив неопределённых аргументов. В примере мы используем оставшиеся параметры, чтобы собрать аргументы с индексами со 2-го до последнего. Затем мы умножим каждый из них на значение первого аргумента. В этом примере используется стрелочная функция (Arrow functions), о которой будет рассказано в следующей секции.

+

Остаточные параметры предоставляют нам массив неопределённых аргументов. В примере мы используем остаточные параметры, чтобы собрать аргументы с индексами со 2-го до последнего. Затем мы умножим каждый из них на значение первого аргумента. В этом примере используется стрелочная функция (Arrow functions), о которой будет рассказано в следующей секции.

function multiply(multiplier, ...theArgs) {
   return theArgs.map(x => multiplier * x);
diff --git a/files/ru/web/javascript/reference/functions/arguments/index.html b/files/ru/web/javascript/reference/functions/arguments/index.html
index 80f8c29342..0cadf2be3f 100644
--- a/files/ru/web/javascript/reference/functions/arguments/index.html
+++ b/files/ru/web/javascript/reference/functions/arguments/index.html
@@ -15,7 +15,7 @@ translation_of: Web/JavaScript/Reference/Functions/arguments
 

Объект arguments — это подобный массиву объект, который содержит аргументы, переданные в функцию.

-

Примечание: Если вы пишите ES6-совместимый код, то лучше использовать rest параметры.

+

Примечание: Если вы пишите ES6-совместимый код, то лучше использовать остаточные параметры.

@@ -139,9 +139,9 @@ myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");
*/ -

Оставшиеся, деструктурированные и параметры по умолчанию

+

Остаточные, деструктурированные и параметры по умолчанию

-

Объект arguments может использоваться совместно с оставшимися параметрами, параметрами по умолчанию или деструктурированными параметрами.

+

Объект arguments может использоваться совместно с остаточными параметрами, параметрами по умолчанию или деструктурированными параметрами.

function foo(...args) {
   return arguments;
@@ -156,7 +156,7 @@ myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");
} bar(10); // 10 -

В следующем примере возвращается 100, поскольку здесь нет оставшихся параметров, параметров по умолчанию или деструктурированных параметров:

+

В следующем примере возвращается 100, поскольку здесь нет остаточных параметров, параметров по умолчанию или деструктурированных параметров:

function zoo(a) {
   arguments[0] = 100;
@@ -164,7 +164,7 @@ myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");
} zoo(10); // 100 -

На самом деле, если оставшиеся параметры, параметры по умолчанию или деструктурированные параметры не используются, формальные аргументы будут ссылаться на последние значения объекта arguments, при считывании значений формальных аргументов будут считаны последние данные из arguments, а при изменении значений формальных аргументов будет обновлён и объект arguments. Пример приведён в коде ниже:

+

На самом деле, если остаточные параметры, параметры по умолчанию или деструктурированные параметры не используются, формальные аргументы будут ссылаться на последние значения объекта arguments, при считывании значений формальных аргументов будут считаны последние данные из arguments, а при изменении значений формальных аргументов будет обновлён и объект arguments. Пример приведён в коде ниже:

function func(a, b) {
     arguments[0] = 90;
@@ -184,7 +184,7 @@ myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");
func(3, 4); //9, 99 -

Но в случае, когда применяются оставшиеся параметры, параметры по умолчанию или деструктурированные параметры, будет обработано нормальное поведение, как в случае параметров по умолчанию:

+

Но в случае, когда применяются остаточные параметры, параметры по умолчанию или деструктурированные параметры, будет обработано нормальное поведение, как в случае параметров по умолчанию:

function func(a, b, c=9) {
     arguments[0] = 99;
diff --git a/files/ru/web/javascript/reference/functions/arrow_functions/index.html b/files/ru/web/javascript/reference/functions/arrow_functions/index.html
index e336bb93b5..8cabc98dcb 100644
--- a/files/ru/web/javascript/reference/functions/arrow_functions/index.html
+++ b/files/ru/web/javascript/reference/functions/arrow_functions/index.html
@@ -36,7 +36,7 @@ singleParam => { statements }
 
// Когда возвращаете литеральное выражение объекта, заключите тело в скобки
 params => ({foo: bar})
 
-// Rest параметры и параметры по умолчанию поддерживаются
+// Остаточные параметры и параметры по умолчанию поддерживаются
 (param1, param2, ...rest) => { statements }
 (param1 = defaultValue1, param2, …, paramN = defaultValueN) => { statements }
 
@@ -188,7 +188,7 @@ function foo() {
 
 foo(1); // 3
-

В большинстве случаев лучшей заменой объекта arguments в стрелочных функциях являются rest параметры:

+

В большинстве случаев лучшей заменой объекта arguments в стрелочных функциях являются остаточные параметры:

function foo() {
   var f = (...args) => args[0];
diff --git a/files/ru/web/javascript/reference/functions/index.html b/files/ru/web/javascript/reference/functions/index.html
index 2bdc3496e1..26a0bdc114 100644
--- a/files/ru/web/javascript/reference/functions/index.html
+++ b/files/ru/web/javascript/reference/functions/index.html
@@ -154,16 +154,16 @@ param => expression
 

Параметры функции

-

Примечание: Оставшиеся параметры и параметры по умолчанию — это экспериментальная технология, часть спецификации ECMAScript 6, и они пока ещё не получили широкой поддержки среди браузеров.

+

Примечание: Остаточные параметры и параметры по умолчанию — это экспериментальная технология, часть спецификации ECMAScript 6, и они пока ещё не получили широкой поддержки среди браузеров.

Параметры по умолчанию

Параметры функции по умолчанию позволяют инициализировать формальные параметры со значениями по умолчанию, если им не было передано значение, или было передано undefined. Подробнее о них можно узнать в статье Параметры по умолчанию.

-

Оставшиеся параметры

+

Остаточные параметры

-

Синтаксис оставшихся параметров позволяет передать бесконечное число аргументов как массив. Подробности можно найти в статье Оставшиеся параметры.

+

Синтаксис оставшихся параметров позволяет передать бесконечное число аргументов как массив. Подробности можно найти в статье Остаточные параметры.

Объект arguments

@@ -417,7 +417,7 @@ result = padZeros(5,4); // возвращает "0005" {{SpecName('ES6', '#sec-function-definitions', 'Function definitions')}} {{Spec2('ES6')}} - Новое: стрелочные функции, генераторы, параметры по умолчанию, оставшиеся параметры + Новое: стрелочные функции, генераторы, параметры по умолчанию, остаточные параметры diff --git a/files/ru/web/javascript/reference/functions/rest_parameters/index.html b/files/ru/web/javascript/reference/functions/rest_parameters/index.html index 14229ded17..0132e6b5ed 100644 --- a/files/ru/web/javascript/reference/functions/rest_parameters/index.html +++ b/files/ru/web/javascript/reference/functions/rest_parameters/index.html @@ -1,15 +1,15 @@ --- -title: Оставшиеся параметры (rest parameters) +title: Остаточные параметры (rest parameters) slug: Web/JavaScript/Reference/Functions/Rest_parameters tags: - JavaScript - - Оставшиеся параметры + - Остаточные параметры - Функции translation_of: Web/JavaScript/Reference/Functions/rest_parameters ---
{{jsSidebar("Functions")}} 
-

Синтаксис оставшихся параметров функции позволяет представлять неограниченное множество аргументов в виде массива.

+

Синтаксис остаточных параметров функции позволяет представлять неограниченное множество аргументов в виде массива.

{{EmbedInteractiveExample("pages/js/functions-restparameters.html")}}

@@ -38,21 +38,21 @@ myFun("один", "два", "три", "четыре", "пять", "шесть"); // manyMoreArgs, [три, четыре, пять, шесть]
-

Отличия оставшихся параметров от объекта arguments

+

Отличия остаточных параметров от объекта arguments

-

Существует три основных отличия оставшихся параметров от объекта arguments:

+

Существует три основных отличия остаточных параметров от объекта arguments:

    -
  • оставшиеся параметры включают только те, которым не задано отдельное имя, в то время как объект arguments содержит все аргументы, передаваемые в функцию;
  • -
  • объект arguments не является массивом, в то время как оставшиеся параметры являются экземпляром Array и методы sort, map, forEach или pop могут непосредственно у них использоваться;
  • +
  • остаточные параметры включают только те, которым не задано отдельное имя, в то время как объект arguments содержит все аргументы, передаваемые в функцию;
  • +
  • объект arguments не является массивом, в то время как остаточные параметры являются экземпляром Array и методы sort, map, forEach или pop могут непосредственно у них использоваться;
  • объект arguments имеет дополнительную функциональность, специфичную только для него (например, свойство callee).

Из аргументов в массив

-

Оставшиеся параметры были введены для уменьшения количества шаблонного кода:

+

Остаточные параметры были введены для уменьшения количества шаблонного кода:

-
// До появления оставшихся параметров "arguments" конвертировали в обычный массив используя:
+
// До появления остаточных параметров "arguments" конвертировали в обычный массив используя:
 
 function f(a, b) {
 
@@ -67,16 +67,16 @@ function f(a, b) {
 
 }
 
-// Теперь мы можем легко получить оставшиеся параметры как обычный массив
+// Теперь мы можем легко получить остаточные параметры как обычный массив
 
 function f(...args) {
   var normalArray = args;
   var first = normalArray.shift(); // OK, даёт первый аргумент
 }
-

Деструктуризация оставшихся параметров

+

Деструктуризация остаточных параметров

-

Оставшиеся параметры могут быть деструктурированы (только массивы). Это означает, что их данные могут быть заданы как отдельные значения. Смотрите Деструктурирующее присваивание.

+

Остаточные параметры могут быть деструктурированы (только массивы). Это означает, что их данные могут быть заданы как отдельные значения. Смотрите Деструктурирующее присваивание.

function f(...[a, b, c]) {
   return a + b + c;
@@ -132,7 +132,7 @@ fun1();  // 0
 fun1(5); // 1
 fun1(5, 6, 7); // 3
-

В следующем примере, оставшиеся параметры используются для сбора всех аргументов после первого в массив. Каждый из них умножается на первый параметр и возвращается массив:

+

В следующем примере, остаточные параметры используются для сбора всех аргументов после первого в массив. Каждый из них умножается на первый параметр и возвращается массив:

function multiply(multiplier, ...theArgs) {
   return theArgs.map(function(element) {
@@ -143,7 +143,7 @@ fun1(5, 6, 7); // 3
var arr = multiply(2, 1, 2, 3); console.log(arr); // [2, 4, 6]
-

Методы Array могут быть использованы на оставшихся параметрах, но не на объекте arguments

+

Методы Array могут быть использованы на остаточных параметрах, но не на объекте arguments

function sortRestArgs(...theArgs) {
   var sortedArgs = theArgs.sort();
diff --git a/files/ru/web/javascript/reference/index.html b/files/ru/web/javascript/reference/index.html
index 606c77d483..f498c81725 100644
--- a/files/ru/web/javascript/reference/index.html
+++ b/files/ru/web/javascript/reference/index.html
@@ -35,7 +35,7 @@ translation_of: Web/JavaScript/Reference
  
  • arguments
  • Стрелочные функции
  • Параметры по умолчанию
  • -
  • Оставшиеся параметры
  • +
  • Остаточные параметры
  • Дополнительные справочные страницы

    diff --git a/files/ru/web/javascript/reference/trailing_commas/index.html b/files/ru/web/javascript/reference/trailing_commas/index.html index 322cfe9080..918671b8b4 100644 --- a/files/ru/web/javascript/reference/trailing_commas/index.html +++ b/files/ru/web/javascript/reference/trailing_commas/index.html @@ -89,7 +89,7 @@ Math.max(10, 20,);

    Недопустимые висящие запятые

    -

    Определение параметров функции или вызов функции, содержащих только запятую будет генерировать {{Jsxref("SyntaxError")}}. Кроме того, при использовании оставшихся параметров не допускается использовать висящие запятые:

    +

    Определение параметров функции или вызов функции, содержащих только запятую будет генерировать {{Jsxref("SyntaxError")}}. Кроме того, при использовании остаточных параметров не допускается использовать висящие запятые:

    function f(,) {} // SyntaxError: missing formal parameter
     (,) => {};       // SyntaxError: expected expression, got ','
    -- 
    cgit v1.2.3-54-g00ecf