From 360e6788bdfdcabc21af33059c432832255c88ef Mon Sep 17 00:00:00 2001 From: Volodymyr V Date: Sat, 7 Nov 2020 00:36:04 +0100 Subject: [PATCH 01/15] First part of article.md --- .../15-function-basics/article.md | 116 +++++++++--------- 1 file changed, 59 insertions(+), 57 deletions(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index b12d0b9e7..9a9237703 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -1,40 +1,42 @@ -# Functions +# Функції -Quite often we need to perform a similar action in many places of the script. +Досить часто ми потребуємо виконати подібну дію в багатьох місцях скрипту. -For example, we need to show a nice-looking message when a visitor logs in, logs out and maybe somewhere else. +Наприклад, нам треба показати приємне повідомлення, коли користувач входить або виходить з системи і може ще десь. -Functions are the main "building blocks" of the program. They allow the code to be called many times without repetition. +Функції це головні "будівні блоки" програми. Вони дозволяють робити ті самі дії багато разів в коді без повторення. -We've already seen examples of built-in functions, like `alert(message)`, `prompt(message, default)` and `confirm(question)`. But we can create functions of our own as well. +Ми вже зустрічались з такими вбудованими функціями, от-як `alert(message)`, `prompt(message, default)` і `confirm(question)`, але ми теж можемо творити свої функції. -## Function Declaration +## Декларація (оголошення) Функцій -To create a function we can use a *function declaration*. +Щоб створити функцію нам треба її _оголосити_. -It looks like this: +Це виглядає ось так: ```js function showMessage() { - alert( 'Hello everyone!' ); + alert('Всім привіт!'); } ``` -The `function` keyword goes first, then goes the *name of the function*, then a list of *parameters* between the parentheses (comma-separated, empty in the example above) and finally the code of the function, also named "the function body", between curly braces. +Спочатку ми пишемо `function` - це keyword (ключове слово), яке дає зрозуміти комп'ютеру, що далі буде оголошення функції. +Потім - _назву функції_, тоді список її _параметрів_ в дужках (відділені комою). Якщо параметрів немає, ми залишаємо _пусті дужки_. +І нарешті, код функції, також її називають _тілом функції_ між фігурними дужками. Функція може бути і без тіла, це Ви дізнаєтесь пізніше. ```js -function name(parameters) { - ...body... +function name(параметри) { + ...тіло... } ``` -Our new function can be called by its name: `showMessage()`. +Щоб викликати функцію, достатньо написати її ім'я і дужки: `showMessage()` -For instance: +Наприклад: ```js run function showMessage() { - alert( 'Hello everyone!' ); + alert( 'Шановні друзі!' ); } *!* @@ -43,88 +45,88 @@ showMessage(); */!* ``` -The call `showMessage()` executes the code of the function. Here we will see the message two times. +Виклик функції `showMessage()` поводує виконання коду в тілі функції. В цьому прикладі ми побачимо, що функція два рази показує повідомлення. -This example clearly demonstrates one of the main purposes of functions: to avoid code duplication. +Цей приклад яскраво демонструє одну з найшоловніших цілей функції: уникання повторення коду. -If we ever need to change the message or the way it is shown, it's enough to modify the code in one place: the function which outputs it. +Якщо нам треба змінити повідомлення або його вигляд, достатньо змодифікувати тіло функції, яке це повідомлення творить. -## Local variables +## Локальні (місцеві) змінні -A variable declared inside a function is only visible inside that function. +Змінна, яка оголошена в функції доступна лише в тій функції. -For example: +До прикладу: ```js run function showMessage() { *!* - let message = "Hello, I'm JavaScript!"; // local variable + let message = "Бажаю вам 36.6"; // локальна змінна */!* alert( message ); } -showMessage(); // Hello, I'm JavaScript! +showMessage(); // Бажаю вам 36.6 -alert( message ); // <-- Error! The variable is local to the function +alert( message ); // <-- Отакої! Змінна недоступна поза функцією! ``` -## Outer variables +## Зовнішні змінні -A function can access an outer variable as well, for example: +Функція може використовувати зовнішні змінні, ось наприлад: ```js run no-beautify -let *!*userName*/!* = 'John'; +let *!*userName*/!* = 'Іван'; function showMessage() { - let message = 'Hello, ' + *!*userName*/!*; + let message = 'Здаров, ' + *!*userName*/!*; alert(message); } -showMessage(); // Hello, John +showMessage(); // Здаров, Іван ``` -The function has full access to the outer variable. It can modify it as well. +Функція має повний доступ до зовнішньої змінної. Вона теж може її змінювати. -For instance: +Наприклад: ```js run -let *!*userName*/!* = 'John'; +let *!*userName*/!* = 'Іван'; function showMessage() { - *!*userName*/!* = "Bob"; // (1) changed the outer variable + *!*userName*/!* = "Бодя"; // (1) змінена зовнішня змінна - let message = 'Hello, ' + *!*userName*/!*; + let message = 'Здоровенькі були, ' + *!*userName*/!*; alert(message); } -alert( userName ); // *!*John*/!* before the function call +alert( userName ); // *!*Іван*/!* перед викликом функції showMessage showMessage(); -alert( userName ); // *!*Bob*/!*, the value was modified by the function +alert( userName ); // *!*Бодя*/!*, після виклика функції showMessage. Змінна була змінена цієї функцією ``` -The outer variable is only used if there's no local one. +Зовнішня змінна використовується тоді, коли немає локальної (місцевої). -If a same-named variable is declared inside the function then it *shadows* the outer one. For instance, in the code below the function uses the local `userName`. The outer one is ignored: +Якщо є дві змінні, одна - зовнішня, друга - локальна, тоді це називається _variable shadowing_, себто _затьмарення змінної_. Загалом це погана практика, але ось приклад, в якому локальна змінна `userName` має пріоритет перед зовнішньою змінною: ```js run -let userName = 'John'; +let userName = 'Іван'; // декларація зовнішньої змінної function showMessage() { *!* - let userName = "Bob"; // declare a local variable + let userName = "Бодя"; // декларація локальної змінної */!* - let message = 'Hello, ' + userName; // *!*Bob*/!* + let message = 'Здоров, ' + userName; // *!*Бодя*/!* alert(message); } -// the function will create and use its own userName +// функція завжди віддасть переавгу локальним змінним showMessage(); -alert( userName ); // *!*John*/!*, unchanged, the function did not access the outer variable +alert( userName ); // *!*Іван*/!*, без змін, функція не змінила глобальну змінну ``` ```smart header="Global variables" @@ -137,7 +139,7 @@ It's a good practice to minimize the use of global variables. Modern code has fe ## Parameters -We can pass arbitrary data to functions using parameters (also called *function arguments*) . +We can pass arbitrary data to functions using parameters (also called _function arguments_) . In the example below, the function has two parameters: `from` and `text`. @@ -156,7 +158,6 @@ When the function is called in lines `(*)` and `(**)`, the given values are copi Here's one more example: we have a variable `from` and pass it to the function. Please note: the function changes `from`, but the change is not seen outside, because a function always gets a copy of the value: - ```js run function showMessage(from, text) { @@ -182,7 +183,7 @@ If a parameter is not provided, then its value becomes `undefined`. For instance, the aforementioned function `showMessage(from, text)` can be called with a single argument: ```js -showMessage("Ann"); +showMessage('Ann'); ``` That's not an error. Such a call would output `"*Ann*: undefined"`. There's no `text`, so it's assumed that `text === undefined`. @@ -249,7 +250,7 @@ Modern JavaScript engines support the [nullish coalescing operator](info:nullish ```js run // if there's no "count" parameter, show "unknown" function showCount(count) { - alert(count ?? "unknown"); + alert(count ?? 'unknown'); } showCount(0); // 0 @@ -317,13 +318,14 @@ function showMovie(age) { In the code above, if `checkAge(age)` returns `false`, then `showMovie` won't proceed to the `alert`. -````smart header="A function with an empty `return` or without it returns `undefined`" -If a function does not return a value, it is the same as if it returns `undefined`: +````smart header="A function with an empty `return`or without it returns`undefined`" If a function does not return a value, it is the same as if it returns `undefined`: ```js run -function doNothing() { /* empty */ } +function doNothing() { + /* empty */ +} -alert( doNothing() === undefined ); // true +alert(doNothing() === undefined); // true ``` An empty `return` is also the same as `return undefined`: @@ -333,9 +335,10 @@ function doNothing() { return; } -alert( doNothing() === undefined ); // true +alert(doNothing() === undefined); // true ``` -```` + +````` ````warn header="Never add a newline between `return` and the value" For a long expression in `return`, it might be tempting to put it on a separate line, like this: @@ -363,7 +366,7 @@ return ( ) ``` And it will work just as we expect it to. -```` +````` ## Naming a function [#function-naming] @@ -427,12 +430,11 @@ The first variant uses a label: ```js function showPrimes(n) { nextPrime: for (let i = 2; i < n; i++) { - for (let j = 2; j < i; j++) { if (i % j == 0) continue nextPrime; } - alert( i ); // a prime + alert(i); // a prime } } ``` @@ -457,7 +459,7 @@ function isPrime(n) { } ``` -The second variant is easier to understand, isn't it? Instead of the code piece we see a name of the action (`isPrime`). Sometimes people refer to such code as *self-describing*. +The second variant is easier to understand, isn't it? Instead of the code piece we see a name of the action (`isPrime`). Sometimes people refer to such code as _self-describing_. So, functions can be created even if we don't intend to reuse them. They structure the code and make it readable. From 55203a92b091e946b2603c8b10664695fbc554bf Mon Sep 17 00:00:00 2001 From: Taras Date: Mon, 28 Dec 2020 13:09:19 +0200 Subject: [PATCH 02/15] Update 1-js/02-first-steps/15-function-basics/article.md Co-authored-by: UkrainianCitizen <31314423+UkrainianCitizen@users.noreply.github.com> --- 1-js/02-first-steps/15-function-basics/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index 9a9237703..9d1fb00d7 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -45,7 +45,7 @@ showMessage(); */!* ``` -Виклик функції `showMessage()` поводує виконання коду в тілі функції. В цьому прикладі ми побачимо, що функція два рази показує повідомлення. +Виклик `showMessage()` виконує код із тіла функції. В цьому випадку, ми побачимо повідомлення двічі. Цей приклад яскраво демонструє одну з найшоловніших цілей функції: уникання повторення коду. From 8a08422fd57ed7a9d16d9cdec2f3da503cd522fd Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 13 Jul 2021 21:54:30 +0300 Subject: [PATCH 03/15] Update 1-js/02-first-steps/15-function-basics/article.md --- 1-js/02-first-steps/15-function-basics/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index 9d1fb00d7..eddaa1c5b 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -1,6 +1,6 @@ # Функції -Досить часто ми потребуємо виконати подібну дію в багатьох місцях скрипту. +Досить часто нам потрібно виконати подібну дію в багатьох місцях скрипту. Наприклад, нам треба показати приємне повідомлення, коли користувач входить або виходить з системи і може ще десь. From d1b38cb9f8f3997266b2d6dd5e2eb2fa10adc6d0 Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 13 Jul 2021 21:54:55 +0300 Subject: [PATCH 04/15] Update 1-js/02-first-steps/15-function-basics/article.md --- 1-js/02-first-steps/15-function-basics/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index eddaa1c5b..1ecd1974d 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -4,7 +4,7 @@ Наприклад, нам треба показати приємне повідомлення, коли користувач входить або виходить з системи і може ще десь. -Функції це головні "будівні блоки" програми. Вони дозволяють робити ті самі дії багато разів в коді без повторення. +Функції — це головні "будівельні блоки" програми. Вони дозволяють робити ті самі дії багато разів в коді без повторення. Ми вже зустрічались з такими вбудованими функціями, от-як `alert(message)`, `prompt(message, default)` і `confirm(question)`, але ми теж можемо творити свої функції. From 9347c84b4465d27f325bc1443ab02add91f84adf Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 13 Jul 2021 21:56:31 +0300 Subject: [PATCH 05/15] Update 1-js/02-first-steps/15-function-basics/article.md --- 1-js/02-first-steps/15-function-basics/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index 1ecd1974d..490486087 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -6,7 +6,7 @@ Функції — це головні "будівельні блоки" програми. Вони дозволяють робити ті самі дії багато разів в коді без повторення. -Ми вже зустрічались з такими вбудованими функціями, от-як `alert(message)`, `prompt(message, default)` і `confirm(question)`, але ми теж можемо творити свої функції. +Ми вже стикались з такими вбудованими функціями, як-от `alert(message)`, `prompt(message, default)` та `confirm(question)`. Але ми теж можемо створювати свої функції. ## Декларація (оголошення) Функцій From 99a46067b619ab2eefdabdc4cecd302add2b4ee7 Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 13 Jul 2021 21:57:10 +0300 Subject: [PATCH 06/15] Update 1-js/02-first-steps/15-function-basics/article.md --- 1-js/02-first-steps/15-function-basics/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index 490486087..191f689ec 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -8,7 +8,7 @@ Ми вже стикались з такими вбудованими функціями, як-от `alert(message)`, `prompt(message, default)` та `confirm(question)`. Але ми теж можемо створювати свої функції. -## Декларація (оголошення) Функцій +## Оголошення (декларація) функцій Щоб створити функцію нам треба її _оголосити_. From 7360f682aaece161ac57766527e2a2114a5e29e6 Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 13 Jul 2021 21:57:30 +0300 Subject: [PATCH 07/15] Update 1-js/02-first-steps/15-function-basics/article.md --- 1-js/02-first-steps/15-function-basics/article.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index 191f689ec..0740b8c5e 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -20,9 +20,7 @@ function showMessage() { } ``` -Спочатку ми пишемо `function` - це keyword (ключове слово), яке дає зрозуміти комп'ютеру, що далі буде оголошення функції. -Потім - _назву функції_, тоді список її _параметрів_ в дужках (відділені комою). Якщо параметрів немає, ми залишаємо _пусті дужки_. -І нарешті, код функції, також її називають _тілом функції_ між фігурними дужками. Функція може бути і без тіла, це Ви дізнаєтесь пізніше. +Спочатку ми пишемо `function` — це ключове слово (keyword), яке дає зрозуміти комп’ютеру, що далі буде оголошення функції. Потім — _назву функції_, тоді список її _параметрів_ в дужках (розділені комою). Якщо параметрів немає, ми залишаємо _пусті дужки_. І нарешті, код функції, який також називають _тілом функції_ між фігурними дужками. Функція може бути і без тіла, про це Ви дізнаєтесь пізніше. ```js function name(параметри) { From 81913d5837cbbc5de40daef102c55af6f530692f Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 13 Jul 2021 21:58:06 +0300 Subject: [PATCH 08/15] Update 1-js/02-first-steps/15-function-basics/article.md Co-authored-by: UkrainianCitizen <31314423+UkrainianCitizen@users.noreply.github.com> --- 1-js/02-first-steps/15-function-basics/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index 0740b8c5e..0f7c74ccd 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -45,7 +45,7 @@ showMessage(); Виклик `showMessage()` виконує код із тіла функції. В цьому випадку, ми побачимо повідомлення двічі. -Цей приклад яскраво демонструє одну з найшоловніших цілей функції: уникання повторення коду. +Цей приклад яскраво демонструє одну з найголовніших цілей функції - уникнення повторення коду. Якщо нам треба змінити повідомлення або його вигляд, достатньо змодифікувати тіло функції, яке це повідомлення творить. From 9476b851d05822774f41b059217eefd2165529d9 Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 13 Jul 2021 21:58:19 +0300 Subject: [PATCH 09/15] Update 1-js/02-first-steps/15-function-basics/article.md --- 1-js/02-first-steps/15-function-basics/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index 0f7c74ccd..ebc19d079 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -71,7 +71,7 @@ alert( message ); // <-- Отакої! Змінна недоступна поз ## Зовнішні змінні -Функція може використовувати зовнішні змінні, ось наприлад: +Функція може використовувати зовнішні змінні, ось наприклад: ```js run no-beautify let *!*userName*/!* = 'Іван'; From b68b89ac4bff8503bbe7a8535ee5072fbff36739 Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 13 Jul 2021 21:58:38 +0300 Subject: [PATCH 10/15] Update 1-js/02-first-steps/15-function-basics/article.md --- 1-js/02-first-steps/15-function-basics/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index ebc19d079..7811d3a33 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -102,7 +102,7 @@ alert( userName ); // *!*Іван*/!* перед викликом функції showMessage(); -alert( userName ); // *!*Бодя*/!*, після виклика функції showMessage. Змінна була змінена цієї функцією +alert( userName ); // *!*Бодя*/!*, значення було змінено після виклику функції showMessage ``` Зовнішня змінна використовується тоді, коли немає локальної (місцевої). From e55c3c9ea425be433e4231ece301eceb5f616acb Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 13 Jul 2021 21:58:47 +0300 Subject: [PATCH 11/15] Update 1-js/02-first-steps/15-function-basics/article.md --- 1-js/02-first-steps/15-function-basics/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index 7811d3a33..9b68a98b8 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -121,7 +121,7 @@ function showMessage() { alert(message); } -// функція завжди віддасть переавгу локальним змінним +// функція завжди віддасть перевагу локальним змінним showMessage(); alert( userName ); // *!*Іван*/!*, без змін, функція не змінила глобальну змінну From 6c99a89f57f4c0a07ed4f0dc912c1abe06927557 Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 13 Jul 2021 22:00:18 +0300 Subject: [PATCH 12/15] Update 1-js/02-first-steps/15-function-basics/article.md Co-authored-by: UkrainianCitizen <31314423+UkrainianCitizen@users.noreply.github.com> --- 1-js/02-first-steps/15-function-basics/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index 9b68a98b8..1e4cb851d 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -77,7 +77,7 @@ alert( message ); // <-- Отакої! Змінна недоступна поз let *!*userName*/!* = 'Іван'; function showMessage() { - let message = 'Здаров, ' + *!*userName*/!*; + let message = 'Привіт, ' + *!*userName*/!*; alert(message); } From 2ac2bc320d11cd50cf1d30c2d33ff5668ea15e36 Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 13 Jul 2021 22:14:34 +0300 Subject: [PATCH 13/15] Update 1-js/02-first-steps/15-function-basics/article.md Co-authored-by: UkrainianCitizen <31314423+UkrainianCitizen@users.noreply.github.com> --- 1-js/02-first-steps/15-function-basics/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index 1e4cb851d..7b70c715a 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -92,7 +92,7 @@ showMessage(); // Здаров, Іван let *!*userName*/!* = 'Іван'; function showMessage() { - *!*userName*/!* = "Бодя"; // (1) змінена зовнішня змінна + *!*userName*/!* = " Боб"; // (1) змінено зовнішню змінну let message = 'Здоровенькі були, ' + *!*userName*/!*; alert(message); From c4e63559d1bb14706c78b4a2b79307ab4396b318 Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 13 Jul 2021 22:23:17 +0300 Subject: [PATCH 14/15] Update 1-js/02-first-steps/15-function-basics/article.md --- 1-js/02-first-steps/15-function-basics/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index 7b70c715a..221bcc0a2 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -28,7 +28,7 @@ function name(параметри) { } ``` -Щоб викликати функцію, достатньо написати її ім'я і дужки: `showMessage()` +Щоб викликати функцію, достатньо написати її ім’я і дужки: `showMessage()`. Наприклад: From 8c3f1aeec825b88ddf98a5826760336db94c6d94 Mon Sep 17 00:00:00 2001 From: Taras Date: Tue, 13 Jul 2021 22:24:05 +0300 Subject: [PATCH 15/15] Update 1-js/02-first-steps/15-function-basics/article.md Co-authored-by: UkrainianCitizen <31314423+UkrainianCitizen@users.noreply.github.com> --- 1-js/02-first-steps/15-function-basics/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/15-function-basics/article.md b/1-js/02-first-steps/15-function-basics/article.md index 221bcc0a2..189129f40 100644 --- a/1-js/02-first-steps/15-function-basics/article.md +++ b/1-js/02-first-steps/15-function-basics/article.md @@ -107,7 +107,7 @@ alert( userName ); // *!*Бодя*/!*, значення було змінено Зовнішня змінна використовується тоді, коли немає локальної (місцевої). -Якщо є дві змінні, одна - зовнішня, друга - локальна, тоді це називається _variable shadowing_, себто _затьмарення змінної_. Загалом це погана практика, але ось приклад, в якому локальна змінна `userName` має пріоритет перед зовнішньою змінною: +Якщо всередині функції є змінна з таким самим ім'ям, то вона *затьмарює* зовнішню. Наприклад, наступний код використовує локальну змінну `userName`. Зовнішня ігнорується. ```js run let userName = 'Іван'; // декларація зовнішньої змінної pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy