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