Files
freeCodeCamp/curriculum/challenges/russian/02-javascript-algorithms-and-data-structures/es6/explore-differences-between-the-var-and-let-keywords.russian.md

3.8 KiB
Raw Blame History

id, title, challengeType, forumTopicId, localeTitle
id title challengeType forumTopicId localeTitle
587d7b87367417b2b2512b3f Explore Differences Between the var and let Keywords 1 301202 Исследуйте различия между ключевыми словами var и let

Description

Одна из самых больших проблем с объявлением переменных с ключевым словом var заключается в том, что вы можете перезаписывать значения переменных без каких либо ошибок.
var camper = 'Джеймс';
var camper = 'David';
console.log (camper);
// logs 'David'
Как вы можете видеть в приведенном выше коде, переменную camper изначально записывается значение James, а затем переопределяется как David . В небольшом приложении вы можете не столкнуться с этой проблемой, но когда ваш код станет больше, вы можете случайно перезаписать переменную, которую вы не намеревались перезаписывать. Поскольку это поведение не вызывает ошибки, поиск и исправление ошибок усложняется.
В ES6 было введено новое ключевое слово let чтобы решить эту потенциальную проблему возникающую с помощью ключевого слова var . Если вы замените код с var на let в объявлениях переменных вышеприведенного кода, результатом будет ошибка.
let camper = «Джеймс»;
let camper = «Дэвид»; // выдает ошибку
Эту ошибку можно увидеть в консоли вашего браузера. Таким образом, в отличие от var , при использовании let переменная с тем же именем может быть объявлена ​​только один раз. Обратите внимание на "use strict" . Это позволяет использовать Strict Mode, который ловит распространенные ошибки кодирования и «небезопасные» действия. Например:
«use strict»;
x = 3,14; // выдает ошибку, поскольку x не объявляется

Instructions

Обновите код, используя только ключевое слово let.

Tests

tests:
  - text: <code>var</code> does not exist in code.
    testString: getUserInput => assert(!getUserInput('index').match(/var/g));
  - text: <code>catName</code> should be <code>Oliver</code>.
    testString: assert(catName === "Oliver");
  - text: <code>quote</code> should be <code>"Oliver says Meow!"</code>
    testString: assert(quote === "Oliver says Meow!");

Challenge Seed

var catName;
var quote;
function catTalk() {
  "use strict";

  catName = "Oliver";
  quote = catName + " says Meow!";

}
catTalk();

Solution

let catName;
let quote;
function catTalk() {
  'use strict';

  catName = 'Oliver';
  quote = catName + ' says Meow!';
}
catTalk();