2.5 KiB
id, title, challengeType, videoUrl, forumTopicId, dashedName
| id | title | challengeType | videoUrl | forumTopicId | dashedName |
|---|---|---|---|---|---|
| 56533eb9ac21ba0edf2244bf | Локальна область видимості та функції | 1 | https://scrimba.com/c/cd62NhM | 18227 | local-scope-and-functions |
--description--
Змінні, оголошені в межах функції, мають локальну область видимості (як і параметри функції). Це означає, що вони видимі лише в межах цієї функції.
Ось функція myTest з локальною змінною під назвою loc.
function myTest() {
const loc = "foo";
console.log(loc);
}
myTest();
console.log(loc);
Виклик функції myTest() показуватиме рядок foo на консолі. Рядок console.log(loc) (за межами функції myTest) видасть помилку, тому що loc не визначено поза функцією.
--instructions--
Редактор має два console.log, щоб ви могли бачити, що відбувається. Перевіряйте консоль, коли програмуєте, щоб побачити зміни. Оголосіть локальну змінну myVar всередині myLocalScope та запустіть тести.
Примітка: на консолі досі буде ReferenceError: myVar is not defined, але це не спричинить збій тестів.
--hints--
Код не повинен містити глобальну змінну myVar.
function declared() {
myVar;
}
assert.throws(declared, ReferenceError);
Ви повинні додати локальну змінну myVar.
assert(
/functionmyLocalScope\(\)\{.*(var|let|const)myVar[\s\S]*}/.test(
__helpers.removeWhiteSpace(code)
)
);
--seed--
--seed-contents--
function myLocalScope() {
// Only change code below this line
console.log('inside myLocalScope', myVar);
}
myLocalScope();
// Run and check the console
// myVar is not defined outside of myLocalScope
console.log('outside myLocalScope', myVar);
--solutions--
function myLocalScope() {
// Only change code below this line
let myVar;
console.log('inside myLocalScope', myVar);
}
myLocalScope();
// Run and check the console
// myVar is not defined outside of myLocalScope
console.log('outside myLocalScope', myVar);