diff --git a/modules/10-basics/45-testing/ru/README.md b/modules/10-basics/45-testing/ru/README.md index 2bd91a33..73331ee0 100644 --- a/modules/10-basics/45-testing/ru/README.md +++ b/modules/10-basics/45-testing/ru/README.md @@ -38,3 +38,5 @@ console.log(10); Поэтому всегда внимательно читайте условие задачи и вывод тестов. Там почти наверняка есть указание на ошибку. Если же вы уверены, что проблема в задании или нашли неточность, напишите в наше [сообщество](https://t.me/hexletcommunity), в канал _'Обратная связь'_. + +Кроме упражнений на сайте, будет крайне полезно экспериментировать с кодом в [консоли браузера](https://developer.mozilla.org/en-US/docs/Tools/Browser_Console). В любой ситуации, когда вы недопоняли что-то или хотите попробовать разные варианты, смело открывайте консоль и вводите туда код. diff --git a/modules/30-variables/10-definition/ru/README.md b/modules/30-variables/10-definition/ru/README.md index f6e8daef..4b0cb232 100644 --- a/modules/30-variables/10-definition/ru/README.md +++ b/modules/30-variables/10-definition/ru/README.md @@ -123,3 +123,26 @@ console.log(greeting2); ## Где создавать переменные Программисты стараются создавать переменные ближе к месту, где они используются. Это делает код более читаемым. Особенно важно это в больших программах, где переменных может быть десятки и сотни тысяч. + +## Ошибки при работе с переменными + +Порядок следования инструкций в коде с переменными играет огромное значение. Переменная должна быть определена до того, как будет использована. Ниже пример ошибки, которую очень часто допускают новички: + +```javascript +// Uncaught ReferenceError: greeting is not defined +console.log(greeting); +let greeting = 'Father!'; +``` + +Запуск программы с кодом из примера выше завершается ошибкой `ReferenceError: greeting is not defined`. `ReferenceError` — это ошибка обращения. Она означает, что в коде используется имя (идентификатор), которое не определено. В самом сообщении об этом говорят прямо: `greeting is not defined` — «greeting не определён». + +Кроме неправильного порядка определения, в JavaScript встречаются банальные опечатки — как при использовании переменной, так и при её объявлении. Количество подобных ошибок уменьшается за счёт правильно настроенного редактора: он подсвечивает имена, которые используются без объявления, и предупреждает о возможных проблемах. + +Ещё одна распространённая ошибка — попытаться объявить уже объявленную переменную с помощью `let`: + +```javascript +let greeting = 'Father!'; +let greeting = 'Father!'; // SyntaxError: Identifier 'greeting' has already been declared +``` + +Объявлять переменную дважды нельзя. Если нужно другое значение — создайте новую переменную с другим именем или просто переприсвойте значение уже существующей `let`-переменной без ключевого слова.