75 lines
2.6 KiB
Markdown
75 lines
2.6 KiB
Markdown
![]() |
---
|
|||
|
id: 587d7b87367417b2b2512b3f
|
|||
|
title: Дослідіть відмінності між ключовими словами var та let
|
|||
|
challengeType: 1
|
|||
|
forumTopicId: 301202
|
|||
|
dashedName: explore-differences-between-the-var-and-let-keywords
|
|||
|
---
|
|||
|
|
|||
|
# --description--
|
|||
|
|
|||
|
Одна з найбільших проблем в оголошенні змінних з ключовим словом `var` полягає в легкому перезаписуванні оголошень змінних:
|
|||
|
|
|||
|
```js
|
|||
|
var camper = "James";
|
|||
|
var camper = "David";
|
|||
|
console.log(camper);
|
|||
|
```
|
|||
|
|
|||
|
У вищезазначеному коді змінна `camper` спочатку була оголошена як `James`, а потім була переписана на `David`. Тому консоль показує рядок `David`.
|
|||
|
|
|||
|
У невеликому застосунку вам можливо і не загрожуватиме така проблема. Але з поступовим збільшенням кодової бази, ви можете випадково переписати якусь змінну. Оскільки така дія не вважається помилковою, то й знайти та виправити такі похибки буде складніше.
|
|||
|
|
|||
|
Ключове слово `let` було введено в ES6 (важливе оновлення до JavaScript), щоб потенційно розв'язати цю проблему з ключовим словом `var`. Про інші функції ES6 ви дізнаєтеся у наступних завданнях.
|
|||
|
|
|||
|
Якщо ви заміните `var` на `let` у коді вище, це призведе до помилки:
|
|||
|
|
|||
|
```js
|
|||
|
let camper = "James";
|
|||
|
let camper = "David";
|
|||
|
```
|
|||
|
|
|||
|
Помилку можна побачити у вашій консолі браузера.
|
|||
|
|
|||
|
Отже, на відміну від `var`, при використанні `let` змінну з такою самою назвою можливо оголосити лише один раз.
|
|||
|
|
|||
|
# --instructions--
|
|||
|
|
|||
|
Оновіть код так, щоб використовувалося лише ключове слово `let`.
|
|||
|
|
|||
|
# --hints--
|
|||
|
|
|||
|
`var` має бути відсутнім у коді.
|
|||
|
|
|||
|
```js
|
|||
|
(getUserInput) => assert(!getUserInput('index').match(/var/g));
|
|||
|
```
|
|||
|
|
|||
|
`catName` має бути рядком `Oliver`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(catName === 'Oliver');
|
|||
|
```
|
|||
|
|
|||
|
`catSound` має бути рядком `Meow!`
|
|||
|
|
|||
|
```js
|
|||
|
assert(catSound === 'Meow!');
|
|||
|
```
|
|||
|
|
|||
|
# --seed--
|
|||
|
|
|||
|
## --seed-contents--
|
|||
|
|
|||
|
```js
|
|||
|
var catName = "Oliver";
|
|||
|
var catSound = "Meow!";
|
|||
|
```
|
|||
|
|
|||
|
# --solutions--
|
|||
|
|
|||
|
```js
|
|||
|
let catName = "Oliver";
|
|||
|
let catSound = "Meow!";
|
|||
|
```
|