From c058fa0fb22dc40ef0225b21a97578cddd0aaffa Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:51:05 +0100 Subject: unslug ru: move --- .../reference/statements/block/index.html | 177 +++++++++++++++++++++ .../reference/statements/default/index.html | 117 -------------- .../\320\261\320\273\320\276\320\272/index.html" | 177 --------------------- 3 files changed, 177 insertions(+), 294 deletions(-) create mode 100644 files/ru/web/javascript/reference/statements/block/index.html delete mode 100644 files/ru/web/javascript/reference/statements/default/index.html delete mode 100644 "files/ru/web/javascript/reference/statements/\320\261\320\273\320\276\320\272/index.html" (limited to 'files/ru/web/javascript/reference/statements') diff --git a/files/ru/web/javascript/reference/statements/block/index.html b/files/ru/web/javascript/reference/statements/block/index.html new file mode 100644 index 0000000000..4122fea24d --- /dev/null +++ b/files/ru/web/javascript/reference/statements/block/index.html @@ -0,0 +1,177 @@ +--- +title: Блок +slug: Web/JavaScript/Reference/Statements/Блок +tags: + - JavaScript + - Инструкция + - Оператор + - справочник +translation_of: Web/JavaScript/Reference/Statements/block +--- +
{{jsSidebar("Statements")}}
+ +

Блок инструкций (или сложная инструкция в других языках) используется для группировки нуля или более инструкций. Блок отделяется парой фигурных скобок и может опционально быть {{jsxref("Statements/label", "поименован")}}:

+ +

Синтаксис

+ +
[имя:] {
+  инструкция_1;
+  инструкция_2;
+  ...
+  инструкция_n;
+}
+
+ +
+
инструкция_1, инструкция_2, инструкция_n
+
Инструкции, сгруппированные внутри блока инструкций.
+
имя
+
Необязательное {{jsxref("Statements/label", "имя")}} для визуальной идентификации или использования как точки выхода для оператора {{jsxref("Statements/break", "break")}}.
+
+ +

Описание

+ +

Эта инструкция широко используется с операторами управления потоком (н., {{jsxref("Statements/if...else", "if...else")}}, {{jsxref("Statements/for", "for")}}, {{jsxref("Statements/while", "while")}}). Например:

+ +
while (x < 10) {
+  x++;
+}
+
+ +

Обратите внимание, что блок инструкций не заканчивается точкой с запятой.

+ +

Блок инструкций часто называется сложной (составной) инструкцией в других языках. Он позволяет вам использовать несколько операторов там, где JavaScript ожидает один оператор. Помещение инструкций в блок - это распространенная практика в JavaScript. Противоположное поведение - использование пустого оператора там, где никаких действий не нужно, а оператор требуется.

+ +

Правила области видимости блока

+ +

С использованием var

+ +

Переменные, объявленные через varне имеют блочной области видимости. Переменные, введенные внутри блока, имеют областью видимости содержащую их функцию или скрипт, и последствия записи в них значения распространяются за границы, собственно, блока, в котором они объявлены. Другими словами, блок инструкций не вводит новую область видимости. Хотя "отдельностоящие" блоки не являются нарушением синтаксиса, не стоит использовать отдельностоящие блоки в JavaScript, потому что они не делают то, чего вы от них ожидаете, если вы ожидаете, что они будут себя вести аналогично блокам в C или Java. Например:

+ +
var x = 1;
+{
+  var x = 2;
+}
+console.log(x); // выводит 2
+
+ +

Тут выводится 2, потому что оператор var x внутри блока - в той же области видимости, что и оператор var x перед блоком. В C или Java подобный код вывел бы 1.

+ +

С let и const

+ +

Наоборот, идентификаторы, объявленные с помощью {{jsxref("Statements/let", "let")}} и {{jsxref("Statements/const", "const")}} имеют блочную область видимости:

+ +
let x = 1;
+{
+  let x = 2;
+}
+console.log(x); // выводит 1
+ +

x = 2 ограничено рамками области видимости блока, в котором оно было определено.

+ +

То же самое и для const:

+ +
const c = 1;
+{
+  const c = 2;
+}
+console.log(c); // выводит 1 и не выбрасывает SyntaxError...
+ +

Обратите внимание, что объявленная внутри блока const c = 2 не кидает  SyntaxError: Identifier 'c' has already been declared (идентификатор 'c' уже был объявлен) потому что она может быть объявлена единожды внутри блока.

+ +

Спецификации

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-block', 'Block statement')}}{{Spec2('ESDraft')}}
{{SpecName('ES6', '#sec-block', 'Block statement')}}{{Spec2('ES6')}}
{{SpecName('ES5.1', '#sec-12.1', 'Block statement')}}{{Spec2('ES5.1')}}
{{SpecName('ES3', '#sec-12.1', 'Block statement')}}{{Spec2('ES3')}}
{{SpecName('ES1', '#sec-12.1', 'Block statement')}}{{Spec2('ES1')}}Первоначальная редакция. Реализовано в JavaScript 1.0.
+ +

Совместимость с браузерами

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
ВозможностьChromeFirefox (Gecko)Internet ExplorerOperaSafari
Базовая поддержка{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
ВозможностьAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Базовая поддержка{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

См. так же

+ + diff --git a/files/ru/web/javascript/reference/statements/default/index.html b/files/ru/web/javascript/reference/statements/default/index.html deleted file mode 100644 index c1f3f6b923..0000000000 --- a/files/ru/web/javascript/reference/statements/default/index.html +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: default -slug: Web/JavaScript/Reference/Statements/default -tags: - - JavaScript - - Keyword - - Switch - - export -translation_of: Web/JavaScript/Reference/Statements/switch -translation_of_original: Web/JavaScript/Reference/Statements/default ---- -
{{jsSidebar("Statements")}}
- -

В JavaScript ключевое слово default используется в двух случаях: внутри конструкции {{jsxref("Statements/switch", "switch")}} или с конструкцией {{jsxref("Statements/export", "export")}}.

- -

Синтаксис

- -

В конструкции {{jsxref("Statements/switch", "switch")}}:

- -
switch (expression) {
-  case value1:
-    // Выражение выполнится, когда значение expression соответствует value1
-    [break;]
-  default:
-    // Выражение выполнится, когда ни одно из значений не будет соответствовать значению expression
-    [break;]
-}
- -

С конструкцией {{jsxref("Statements/export", "export")}}:

- -
export default nameN 
- -

Описание

- -

Для получения дополнительной информации смотрите:

- - - -

Примеры

- -

Использование default в  switch

- -

В следующем примере, если expr имеет значение  "Апельсины" или "Яблоки", то программа сопоставит это значение с "Апельсины" или с "Яблоки", а затем выполнит соответствующее выражение. В других случаях поможет ключевое слово default,  выполня связанное выражение.

- -
switch (expr) {
-  case 'Апельсины':
-    console.log('Апельсины стоят $0.59 за фунт.');
-    break;
-  case 'Яблоки':
-    console.log('Яблоки стоят $0.32 за фунт.');
-    break;
-  default:
-    console.log(`Извините, у нас закончились ${expr}.`);
-}
- -

Использование default с export

- -

При необходимости экспорта единственного значения или резервирования (fallback) значения для модуля, можно воспользоваться экспортом по-умолчанию: 

- -
// модуль "my-module.js"
-let cube = function cube(x) {
-  return x * x * x;
-};
-export default cube;
- -

Тогда, в другом файле JavaScript, становится возможным просто импортировать экспортируемое по-умолчанию значение:

- -
// модуль "my-module.js"
-import myFunction from 'my-module';
-console.log(myFunction(3)); // 27
-
- -

Спецификация

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
СпецификацияСтатусКомментарий
{{SpecName('ES6', '#sec-switch-statement', 'switch statement')}}{{Spec2('ES6')}}
{{SpecName('ES6', '#sec-exports', 'Exports')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-switch-statement', 'switch statement')}}{{Spec2('ESDraft')}}
{{SpecName('ESDraft', '#sec-exports', 'Exports')}}{{Spec2('ESDraft')}}
- -

Совместимость с браузерами

- -

{{Compat("javascript.statements.default")}}

- -

Смотрите также

- - diff --git "a/files/ru/web/javascript/reference/statements/\320\261\320\273\320\276\320\272/index.html" "b/files/ru/web/javascript/reference/statements/\320\261\320\273\320\276\320\272/index.html" deleted file mode 100644 index 4122fea24d..0000000000 --- "a/files/ru/web/javascript/reference/statements/\320\261\320\273\320\276\320\272/index.html" +++ /dev/null @@ -1,177 +0,0 @@ ---- -title: Блок -slug: Web/JavaScript/Reference/Statements/Блок -tags: - - JavaScript - - Инструкция - - Оператор - - справочник -translation_of: Web/JavaScript/Reference/Statements/block ---- -
{{jsSidebar("Statements")}}
- -

Блок инструкций (или сложная инструкция в других языках) используется для группировки нуля или более инструкций. Блок отделяется парой фигурных скобок и может опционально быть {{jsxref("Statements/label", "поименован")}}:

- -

Синтаксис

- -
[имя:] {
-  инструкция_1;
-  инструкция_2;
-  ...
-  инструкция_n;
-}
-
- -
-
инструкция_1, инструкция_2, инструкция_n
-
Инструкции, сгруппированные внутри блока инструкций.
-
имя
-
Необязательное {{jsxref("Statements/label", "имя")}} для визуальной идентификации или использования как точки выхода для оператора {{jsxref("Statements/break", "break")}}.
-
- -

Описание

- -

Эта инструкция широко используется с операторами управления потоком (н., {{jsxref("Statements/if...else", "if...else")}}, {{jsxref("Statements/for", "for")}}, {{jsxref("Statements/while", "while")}}). Например:

- -
while (x < 10) {
-  x++;
-}
-
- -

Обратите внимание, что блок инструкций не заканчивается точкой с запятой.

- -

Блок инструкций часто называется сложной (составной) инструкцией в других языках. Он позволяет вам использовать несколько операторов там, где JavaScript ожидает один оператор. Помещение инструкций в блок - это распространенная практика в JavaScript. Противоположное поведение - использование пустого оператора там, где никаких действий не нужно, а оператор требуется.

- -

Правила области видимости блока

- -

С использованием var

- -

Переменные, объявленные через varне имеют блочной области видимости. Переменные, введенные внутри блока, имеют областью видимости содержащую их функцию или скрипт, и последствия записи в них значения распространяются за границы, собственно, блока, в котором они объявлены. Другими словами, блок инструкций не вводит новую область видимости. Хотя "отдельностоящие" блоки не являются нарушением синтаксиса, не стоит использовать отдельностоящие блоки в JavaScript, потому что они не делают то, чего вы от них ожидаете, если вы ожидаете, что они будут себя вести аналогично блокам в C или Java. Например:

- -
var x = 1;
-{
-  var x = 2;
-}
-console.log(x); // выводит 2
-
- -

Тут выводится 2, потому что оператор var x внутри блока - в той же области видимости, что и оператор var x перед блоком. В C или Java подобный код вывел бы 1.

- -

С let и const

- -

Наоборот, идентификаторы, объявленные с помощью {{jsxref("Statements/let", "let")}} и {{jsxref("Statements/const", "const")}} имеют блочную область видимости:

- -
let x = 1;
-{
-  let x = 2;
-}
-console.log(x); // выводит 1
- -

x = 2 ограничено рамками области видимости блока, в котором оно было определено.

- -

То же самое и для const:

- -
const c = 1;
-{
-  const c = 2;
-}
-console.log(c); // выводит 1 и не выбрасывает SyntaxError...
- -

Обратите внимание, что объявленная внутри блока const c = 2 не кидает  SyntaxError: Identifier 'c' has already been declared (идентификатор 'c' уже был объявлен) потому что она может быть объявлена единожды внутри блока.

- -

Спецификации

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-block', 'Block statement')}}{{Spec2('ESDraft')}}
{{SpecName('ES6', '#sec-block', 'Block statement')}}{{Spec2('ES6')}}
{{SpecName('ES5.1', '#sec-12.1', 'Block statement')}}{{Spec2('ES5.1')}}
{{SpecName('ES3', '#sec-12.1', 'Block statement')}}{{Spec2('ES3')}}
{{SpecName('ES1', '#sec-12.1', 'Block statement')}}{{Spec2('ES1')}}Первоначальная редакция. Реализовано в JavaScript 1.0.
- -

Совместимость с браузерами

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
ВозможностьChromeFirefox (Gecko)Internet ExplorerOperaSafari
Базовая поддержка{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
ВозможностьAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Базовая поддержка{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

См. так же

- - -- cgit v1.2.3-54-g00ecf