From f5e5e7cd816f9ae68d822518655b51b195950b22 Mon Sep 17 00:00:00 2001
From: Nikita Rudenko <36961943+nick-rudenko@users.noreply.github.com>
Date: Wed, 12 Dec 2018 19:38:18 +0200
Subject: [PATCH] Fixed translation and typos (#25328)
---
.../compare-scopes-of-the-var-and-let-keywords.russian.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/curriculum/challenges/russian/02-javascript-algorithms-and-data-structures/es6/compare-scopes-of-the-var-and-let-keywords.russian.md b/curriculum/challenges/russian/02-javascript-algorithms-and-data-structures/es6/compare-scopes-of-the-var-and-let-keywords.russian.md
index 6454d82166b..f81424d1f9d 100644
--- a/curriculum/challenges/russian/02-javascript-algorithms-and-data-structures/es6/compare-scopes-of-the-var-and-let-keywords.russian.md
+++ b/curriculum/challenges/russian/02-javascript-algorithms-and-data-structures/es6/compare-scopes-of-the-var-and-let-keywords.russian.md
@@ -3,14 +3,14 @@ id: 587d7b87367417b2b2512b40
title: Compare Scopes of the var and let Keywords
challengeType: 1
videoUrl: ''
-localeTitle: Сравните области действия переменных var и let
+localeTitle: Сравнение области действия переменных var и let
---
## Description
- Когда вы объявляете переменную с ключевым словом var
, она объявляется глобально или локально, если объявляется внутри функции. Ключевое слово let
ведет себя аналогично, но с некоторыми дополнительными функциями. Когда вы объявляете переменную с ключевым словом let
внутри блока, оператора или выражения, его область действия ограничена этим блоком, оператором или выражением. Например: var numArray = [];
для (var i = 0; i <3; i ++) {
numArray.push (я);
}
console.log (Numarray);
// возвращает [0, 1, 2]
console.log (я);
// возвращает 3
С ключевым словом var
i
объявляется глобально. Поэтому, когда i++
выполняется, он обновляет глобальную переменную. Этот код похож на следующий: var numArray = [];
var i;
для (i = 0; i <3; i ++) {
numArray.push (я);
}
console.log (Numarray);
// возвращает [0, 1, 2]
console.log (я);
// возвращает 3
Такое поведение вызовет проблемы, если вы должны были создать функцию и сохранить ее для последующего использования внутри цикла for, который использует переменную i
. Это связано с тем, что хранимая функция всегда будет ссылаться на значение обновленной глобальной переменной i
. var printNumTwo;
для (var i = 0; i <3; i ++) {
if (i === 2) {
printNumTwo = function () {
return i;
};
}
}
console.log (printNumTwo ());
// возвращает 3
Как вы можете видеть, printNumTwo()
печатает 3, а не 2. Это связано с тем, что значение, присвоенное i
было обновлено, и printNumTwo()
возвращает глобальный i
а не значение, которое i
имел, когда функция была создана в цикле for. Ключевое слово let
не следует этому поведению: «использовать строгий»;
let printNumTwo;
для (пусть i = 0; i <3; i ++) {
if (i === 2) {
printNumTwo = function () {
return i;
};
}
}
console.log (printNumTwo ());
// возвращает 2
console.log (я);
// возвращает «i не определен»
i
не определен, потому что он не был объявлен в глобальной области. Он объявляется только в инструкции цикла for. printNumTwo()
вернула правильное значение, потому что три разные переменные i
с уникальными значениями (0, 1 и 2) были созданы ключевым словом let
в цикле.
+ Когда вы объявляете переменную с ключевым словом var
, она объявляется глобально или локально, если объявляется внутри функции. Ключевое слово let
ведет себя аналогично, но с некоторыми дополнительными особенностями. Когда вы объявляете переменную с ключевым словом let
внутри блока, оператора или выражения, его область действия ограничена этим блоком, оператором или выражением. Например: var numArray = [];
for (var i = 0; i <3; i++) {
numArray.push(i);
}
console.log (numArray);
// возвращает [0, 1, 2]
console.log(i);
// возвращает 3
С ключевым словом var
переменная i
объявляется глобально. Поэтому, когда выполняется i++
, обновляется глобальная переменная. Этот код похож на следующий: var numArray = [];
var i;
for (i = 0; i <3; i++) {
numArray.push(i);
}
console.log (numArray);
// возвращает [0, 1, 2]
console.log(i);
// возвращает 3
Такое поведение вызовет проблемы, если вы должны были создать функцию и сохранить ее для последующего использования внутри цикла for, который использует переменную i
. Это связано с тем, что хранимая функция всегда будет ссылаться на значение обновленной глобальной переменной i
. var printNumTwo;
for var i = 0; i <3; i ++) {
if (i === 2) {
printNumTwo = function () {
return i;
};
}
}
console.log (printNumTwo ());
// возвращает 3
Как вы можете видеть, printNumTwo()
печатает 3, а не 2. Это связано с тем, что значение, присвоенное i
было обновлено, и printNumTwo()
возвращает глобальный i
, а не значение, которое i
имел, когда функция была создана в цикле for. Ключевое слово let
не следует этому поведению: «use strict»;
let printNumTwo;
for (let i = 0; i <3; i ++) {
if (i === 2) {
printNumTwo = function () {
return i;
};
}
}
console.log (printNumTwo ());
// возвращает 2
console.log (я);
// возвращает «i не определен»
i
не определен, потому что он не был объявлен в глобальной области. Он объявляется только в объявлении цикла for. printNumTwo()
вернула правильное значение, потому что три разные переменные i
с уникальными значениями (0, 1 и 2) были созданы ключевым словом let
в цикле.
## Instructions
- Исправьте код, чтобы i
объявлял в выражении if отдельную переменную, чем i
объявленный в первой строке функции. Не забудьте использовать ключевое слово var
любом месте вашего кода. Это упражнение предназначено для иллюстрации разницы между тем, как var
и let
ключевыми словами назначить область для объявленных переменных. При программировании функции, аналогичной той, которая используется в этом упражнении, часто лучше использовать разные имена переменных, чтобы избежать путаницы.
+ Исправьте код, чтобы переменная i
внутри if-выражения была отдельной переменной от i
объявленной в первой строке функции. Не забудьте использовать ключевое слово var
в любом месте вашего кода. Это упражнение предназначено для иллюстрации разницы между ключевыми словами var
и let
и область видимости объявленных переменных. При написании функций, аналогичной той, что используется в этом упражнении, часто лучше использовать разные имена переменных, чтобы избежать путаницы.
## Tests