SlideShare a Scribd company logo
1 of 19
Download to read offline
Зовнішні і глобальні змінні
Функція може працювати зі змінними, оголошеними зовні:
var day = 'понеділок';
function showDay() {
alert( day ); // виведення зовнішньої змінної
day = 'вівторок'; // (1) зніна значення зовнішньої змінної
var message = 'Сьогодні ' + day;
alert( message );
}
alert( day ); // понеділок
showDay();
alert( day ); // вівторок, бо функція змінила значення змінної
Змінна, оголошена на рівні всього скрипта називається
глобальною
Параметри функції
Функції можна передавати параметри
(аргументи), з якими вона працюватиме.
function rectangle(a,b) {
var S = a*b;
var P = 2*(a+b);
alert ("Площа прямокутника = " + S);
alert ("Периметр прямокутника = " + P);
}
rectangle(2,3);
Аргументи по замовчуванню
У функції може бути будь-яка кількість аргументів. Якщо якийсь
аргумент при виклику функції не заданий, він буде рівним
undefined.
Приклад:
function rectangle(a,b) {
alert ( "a = " + a + ", b = " + b );
var S = a*b;
var P = 2*(a+b);
alert ("Площа прямокутника = " + S);
alert ("Периметр прямокутника = " + P);
}
rectangle(2);
Виведе спочатку “a = 2, b = undefined”, а потім “Площа
прямокутника = NaN”, “Периметр прямокутника = NaN”.
Завжди можна за своїм бажання задати значення аргументів по
замовчуванню. Наприклад:
function rectangle(a,b) {
alert ( "a = " + a + ", b = " + b );
if (b === undefined) {
b = a;
alert( "Будемо вважати, що маємо справу з квадратом" );
}
var S = a*b;
var P = 2*(a+b);
alert ("Площа прямокутника = " + S);
alert ("Периметр прямокутника = " + P);
}
rectangle(2);
Альтернативний спосіб (замість блоку if):
b = b || a;
“Зайві” аргументи ігноруються.
rectangle(2, 3, 4, "ще щось"); // все добре працює
Повернення значення. return
function getArea(a,b) {
return a*b;
}
function getPerimeter(a,b) {
return 2*(a+b);
}
var S = getArea(2,3);
alert( "S = " + S );
alert( "P = " + getPerimeter(2,3) );
Директив return може бути кілька
function showSign(number) {
if (number > 0) {
return "Плюс";
} else if (number < 0) {
return "Мінус";
} else {
return;
}
}
alert( showSign(1) ); // Плюс
alert( showSign(-1) ); // Мінус
alert( showSign(0) ); // undefined
Задача 22
Напишіть функцію, яка виводить текст “Я
вивчаю JavaScript” і викличте її.
Задача 23
Напишіть функцію, яка виводить текст “Я
вивчаю parameter”, де parameter має
вводитись як аргумент. Викличте її з
аргументом JavaScript.
Задача 24
Напишіть функцію min(a,b), яка повертає
менше з чисел a,b.
Приклад роботи:
min(2, 5) == 2
min(3, -1) == -1
min(1, 1) == 1
Задача 25
Напишіть функцію pow(x,n), яка повертає
x в степені n, тобто перемножує x на себе
n разів і повертає результат. Вважається,
що x і n – цілі додатні числа.
Створіть сторінку, яка питає x і n, а потім
виводить результат pow(x,n).
Розв’язок
function pow(x, n) {
var result = x;
for (var i = 1; i < n; i++) {
result *= x;
}
return result;
}
var x = prompt("x?", '');
var n = prompt("n?", '');
if (n <= 1) {
alert( 'Степінь ' + n + ' не підтримується, введіть ціле n >
1' );
} else {
alert( pow(x, n) );
}
Функціональні вирази.
Function Expression
Синтаксис:
var f = function(параметри) {
// тіло функції
};
Основна відмінність: функції, оголошені як
Function Declaration, створюються
інтерпретатором до виконання коду.
myFunction(); // 1
function myFunction() {
alert( 1 );
}
Функціональні вирази дозволяють застосувати
умовне оголошення функції, наприклад:
var age = prompt('Ваш вік?');
var sayHi;
if (age >= 18) {
sayHi = function() {
alert( 'Заходьте' );
}
} else {
sayHi = function() {
alert( 'До 18 не можна' );
}
}
sayHi();
Рекурсія
В тілі функції можна викликати інші функції, зокрема,
саму себе.
function power(base, exponent) {
if (exponent == 0)
return 1;
else
return base * power(base, exponent - 1);
}
alert(power(2, 3));
Задача 26
Напишіть функцію sumTo(n), яка для
даного n рахує суму чисел від 1 до n.
Задачу можна розв'язати трьома
способами:
1. Через цикл.
2. Через рекурсію.
3. Через формулу суми арифметичної
прогресії.
Розв'язки
1.
function sumTo(n) {
var sum = 0;
for (var i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
2.
function sumTo(n) {
if (n == 1) return 1;
return n + sumTo(n - 1);
}
alert( sumTo(100) );
3.
function sumTo(n) {
return n * (n + 1) / 2;
}
Задача 27
Напишіть функцію для обчислення
факторіала числа.
n! = n*(n-1)*(n-2)*...*2*1.
Розв'язок
function factorial(n) {
return (n != 1) ? n *
factorial(n - 1) : 1;
}
alert( factorial(5) ); // 120
Задача 28
Послідовність чисел Фібоначчі визначається формулою
Fn = Fn-1 + Fn-2. Тобто наступне число є сумою двох
попередніх.
Перші два числа рівні 1, далі 2 (1+1), 3(1+2), 5(2+3) і так
далі: 1, 1, 2, 3, 5, 8, 13, 21....
Напишіть функцію fib(n), яка повертає n-е число
Фібоначчі. Приклад роботи:
function fib(n) { /* ваш код */ }
alert( fib(3) ); // 2
alert( fib(7) ); // 13
alert( fib(77)); // 5527939700884757

More Related Content

What's hot

Singular und Plural - Pluralbildung - Theorie - DaF
Singular und Plural - Pluralbildung  - Theorie - DaFSingular und Plural - Pluralbildung  - Theorie - DaF
Singular und Plural - Pluralbildung - Theorie - DaFMaria Vaz König
 
6 relative clause
6  relative clause6  relative clause
6 relative clauseAlex Bahy
 
031110 chores and errands (liesl)
031110 chores and errands (liesl)031110 chores and errands (liesl)
031110 chores and errands (liesl)bj550
 
POSSESSIVARTIKEL - Theorie / Kurzfassung : Nom/Akk/Dativ
POSSESSIVARTIKEL - Theorie /  Kurzfassung : Nom/Akk/DativPOSSESSIVARTIKEL - Theorie /  Kurzfassung : Nom/Akk/Dativ
POSSESSIVARTIKEL - Theorie / Kurzfassung : Nom/Akk/DativMaria Vaz König
 
электронный учебник немецкий язык
электронный учебник немецкий языкэлектронный учебник немецкий язык
электронный учебник немецкий языкFirajusch
 
PAST SIMPLE
PAST SIMPLEPAST SIMPLE
PAST SIMPLEM FM
 
Simple present
Simple presentSimple present
Simple presentRamonadel
 
Parts of a Sentence
Parts of a SentenceParts of a Sentence
Parts of a Sentenceluigi_a97
 

What's hot (20)

Singular und Plural - Pluralbildung - Theorie - DaF
Singular und Plural - Pluralbildung  - Theorie - DaFSingular und Plural - Pluralbildung  - Theorie - DaF
Singular und Plural - Pluralbildung - Theorie - DaF
 
Present perfect
Present perfectPresent perfect
Present perfect
 
Тарас Шевченко
Тарас Шевченко Тарас Шевченко
Тарас Шевченко
 
Tenses
TensesTenses
Tenses
 
6 relative clause
6  relative clause6  relative clause
6 relative clause
 
Indefinite Pronouns
Indefinite PronounsIndefinite Pronouns
Indefinite Pronouns
 
031110 chores and errands (liesl)
031110 chores and errands (liesl)031110 chores and errands (liesl)
031110 chores and errands (liesl)
 
adjectives
 adjectives adjectives
adjectives
 
some any no every
 some any no every  some any no every
some any no every
 
Modal verbs
Modal verbsModal verbs
Modal verbs
 
POSSESSIVARTIKEL - Theorie / Kurzfassung : Nom/Akk/Dativ
POSSESSIVARTIKEL - Theorie /  Kurzfassung : Nom/Akk/DativPOSSESSIVARTIKEL - Theorie /  Kurzfassung : Nom/Akk/Dativ
POSSESSIVARTIKEL - Theorie / Kurzfassung : Nom/Akk/Dativ
 
электронный учебник немецкий язык
электронный учебник немецкий языкэлектронный учебник немецкий язык
электронный учебник немецкий язык
 
PAST SIMPLE
PAST SIMPLEPAST SIMPLE
PAST SIMPLE
 
Simple present
Simple presentSimple present
Simple present
 
Simple past tense
Simple past tense Simple past tense
Simple past tense
 
Preposition
PrepositionPreposition
Preposition
 
Simple past-tense
Simple past-tenseSimple past-tense
Simple past-tense
 
Parts of a Sentence
Parts of a SentenceParts of a Sentence
Parts of a Sentence
 
Passive voice
Passive voicePassive voice
Passive voice
 
Present perfect
Present perfectPresent perfect
Present perfect
 

Similar to Coding for Future in Lutsk. JavaScript. Part 6

09 Static Polymorphism
09 Static Polymorphism09 Static Polymorphism
09 Static Polymorphismolegapster
 
05 Operations And Utilities
05 Operations And Utilities05 Operations And Utilities
05 Operations And Utilitiesolegapster
 
06 Pointers To Class Members
06 Pointers To Class Members06 Pointers To Class Members
06 Pointers To Class Membersolegapster
 
Programuvanna na movi_pascal
Programuvanna na movi_pascalProgramuvanna na movi_pascal
Programuvanna na movi_pascal1cana1
 
02 Copying Objects
02 Copying Objects02 Copying Objects
02 Copying Objectsolegapster
 
Основи програмування .Паскаль ч.1
Основи програмування .Паскаль ч.1Основи програмування .Паскаль ч.1
Основи програмування .Паскаль ч.1rznz
 
Основи мови Ci
Основи мови CiОснови мови Ci
Основи мови CiEscuela
 
Pascal osnovu
Pascal osnovuPascal osnovu
Pascal osnovuEscuela
 
програмування на мові паскаль
програмування на мові паскаль програмування на мові паскаль
програмування на мові паскаль Helen Pata
 
01 Incapsulation
01 Incapsulation01 Incapsulation
01 Incapsulationolegapster
 
Programuvanna na movi_pascal
Programuvanna na movi_pascalProgramuvanna na movi_pascal
Programuvanna na movi_pascalAnn Eres
 

Similar to Coding for Future in Lutsk. JavaScript. Part 6 (20)

09 Static Polymorphism
09 Static Polymorphism09 Static Polymorphism
09 Static Polymorphism
 
05 Operations And Utilities
05 Operations And Utilities05 Operations And Utilities
05 Operations And Utilities
 
08 Functions
08 Functions08 Functions
08 Functions
 
Функції в C++
Функції в C++Функції в C++
Функції в C++
 
06 Pointers To Class Members
06 Pointers To Class Members06 Pointers To Class Members
06 Pointers To Class Members
 
Programuvanna na movi_pascal
Programuvanna na movi_pascalProgramuvanna na movi_pascal
Programuvanna na movi_pascal
 
02 Copying Objects
02 Copying Objects02 Copying Objects
02 Copying Objects
 
Основи програмування .Паскаль ч.1
Основи програмування .Паскаль ч.1Основи програмування .Паскаль ч.1
Основи програмування .Паскаль ч.1
 
Funkciji1
Funkciji1Funkciji1
Funkciji1
 
3018 1
3018 13018 1
3018 1
 
Основи мови Ci
Основи мови CiОснови мови Ci
Основи мови Ci
 
передача параметрів в функції
передача параметрів в функціїпередача параметрів в функції
передача параметрів в функції
 
Pascal osnovu
Pascal osnovuPascal osnovu
Pascal osnovu
 
програмування на мові паскаль
програмування на мові паскаль програмування на мові паскаль
програмування на мові паскаль
 
01 Incapsulation
01 Incapsulation01 Incapsulation
01 Incapsulation
 
Programuvanna na movi_pascal
Programuvanna na movi_pascalProgramuvanna na movi_pascal
Programuvanna na movi_pascal
 
Coding for Future in Lutsk. JavaScript. Part 5
Coding for Future in Lutsk. JavaScript. Part 5Coding for Future in Lutsk. JavaScript. Part 5
Coding for Future in Lutsk. JavaScript. Part 5
 
Паскаль
ПаскальПаскаль
Паскаль
 
04 Operators
04 Operators04 Operators
04 Operators
 
Pascal основи програмування частина 1
Pascal основи програмування частина 1Pascal основи програмування частина 1
Pascal основи програмування частина 1
 

More from Олег Вілігурський

Python для фізиків. Вступ. Лабораторні роботи
Python для фізиків. Вступ. Лабораторні роботиPython для фізиків. Вступ. Лабораторні роботи
Python для фізиків. Вступ. Лабораторні роботиОлег Вілігурський
 
Python для фізиків. Вступ. Лабораторні роботи.
Python для фізиків. Вступ. Лабораторні роботи.Python для фізиків. Вступ. Лабораторні роботи.
Python для фізиків. Вступ. Лабораторні роботи.Олег Вілігурський
 

More from Олег Вілігурський (20)

JavaScript. Lectures. part 1. basis
JavaScript. Lectures. part 1. basisJavaScript. Lectures. part 1. basis
JavaScript. Lectures. part 1. basis
 
Python для фізиків. Вступ. Лабораторні роботи
Python для фізиків. Вступ. Лабораторні роботиPython для фізиків. Вступ. Лабораторні роботи
Python для фізиків. Вступ. Лабораторні роботи
 
Python для фізиків. Вступ. Лабораторні роботи.
Python для фізиків. Вступ. Лабораторні роботи.Python для фізиків. Вступ. Лабораторні роботи.
Python для фізиків. Вступ. Лабораторні роботи.
 
Python for physicists. introduction
Python for physicists. introductionPython for physicists. introduction
Python for physicists. introduction
 
Theme25-jQuery2
Theme25-jQuery2Theme25-jQuery2
Theme25-jQuery2
 
Theme24-jQuery
Theme24-jQueryTheme24-jQuery
Theme24-jQuery
 
Theme23-oop2(end)
Theme23-oop2(end)Theme23-oop2(end)
Theme23-oop2(end)
 
Theme23-oop2
Theme23-oop2Theme23-oop2
Theme23-oop2
 
Theme22-OOP
Theme22-OOPTheme22-OOP
Theme22-OOP
 
Theme21_json
Theme21_jsonTheme21_json
Theme21_json
 
Theme20_ajax
Theme20_ajaxTheme20_ajax
Theme20_ajax
 
Theme19_css
Theme19_cssTheme19_css
Theme19_css
 
Theme18_css
Theme18_cssTheme18_css
Theme18_css
 
Theme17a css
Theme17a cssTheme17a css
Theme17a css
 
Theme17
Theme17Theme17
Theme17
 
Theme16
Theme16Theme16
Theme16
 
Coding for Future in Lutsk. JavaScript. Part 15
Coding for Future in Lutsk. JavaScript. Part 15Coding for Future in Lutsk. JavaScript. Part 15
Coding for Future in Lutsk. JavaScript. Part 15
 
Coding for Future in Lutsk. JavaScript. Part 14
Coding for Future in Lutsk. JavaScript. Part 14Coding for Future in Lutsk. JavaScript. Part 14
Coding for Future in Lutsk. JavaScript. Part 14
 
Coding for Future in Lutsk. JavaScript. Part 13
 Coding for Future in Lutsk. JavaScript. Part 13 Coding for Future in Lutsk. JavaScript. Part 13
Coding for Future in Lutsk. JavaScript. Part 13
 
Coding for Future in Lutsk. JavaScript. Part 12
Coding for Future in Lutsk. JavaScript. Part 12Coding for Future in Lutsk. JavaScript. Part 12
Coding for Future in Lutsk. JavaScript. Part 12
 

Recently uploaded

Іваніщук Надія Вікторівна атестація .pdf
Іваніщук Надія Вікторівна атестація  .pdfІваніщук Надія Вікторівна атестація  .pdf
Іваніщук Надія Вікторівна атестація .pdfhome
 
Хімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класХімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класkrementsova09nadya
 
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...JurgenstiX
 
атестація 2023-2024 Kewmrbq wtynh GNJ.pdf
атестація 2023-2024 Kewmrbq wtynh GNJ.pdfатестація 2023-2024 Kewmrbq wtynh GNJ.pdf
атестація 2023-2024 Kewmrbq wtynh GNJ.pdfhome
 
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.pptЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.pptssuser59e649
 
Defectolog_presentation_for_website.pptx
Defectolog_presentation_for_website.pptxDefectolog_presentation_for_website.pptx
Defectolog_presentation_for_website.pptxOlgaDidenko6
 
psychologistpresentation-230215175859-50bdd6ed.ppt
psychologistpresentation-230215175859-50bdd6ed.pptpsychologistpresentation-230215175859-50bdd6ed.ppt
psychologistpresentation-230215175859-50bdd6ed.pptOlgaDidenko6
 
Супрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptxСупрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptxOlgaDidenko6
 
Презентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptxПрезентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptxOlgaDidenko6
 
Бомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентаціяБомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентаціяssuser0a4f48
 
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості  та дозвілля для дітейpptxБібліотека – розвиток дитячої творчості  та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptxssuserc301ed1
 
Горбонос 2024_presentation_for_website.pptx
Горбонос 2024_presentation_for_website.pptxГорбонос 2024_presentation_for_website.pptx
Горбонос 2024_presentation_for_website.pptxOlgaDidenko6
 
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdfЗастосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdfssuser15a891
 
Р.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняР.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняAdriana Himinets
 
Проблеми захисту лісу в Україні та шляхи вирішення
Проблеми захисту лісу в Україні та шляхи вирішенняПроблеми захисту лісу в Україні та шляхи вирішення
Проблеми захисту лісу в Україні та шляхи вирішенняtetiana1958
 
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»tetiana1958
 
Супрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptxСупрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptxOlgaDidenko6
 

Recently uploaded (17)

Іваніщук Надія Вікторівна атестація .pdf
Іваніщук Надія Вікторівна атестація  .pdfІваніщук Надія Вікторівна атестація  .pdf
Іваніщук Надія Вікторівна атестація .pdf
 
Хімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класХімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 клас
 
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
 
атестація 2023-2024 Kewmrbq wtynh GNJ.pdf
атестація 2023-2024 Kewmrbq wtynh GNJ.pdfатестація 2023-2024 Kewmrbq wtynh GNJ.pdf
атестація 2023-2024 Kewmrbq wtynh GNJ.pdf
 
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.pptЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
ЛЕКЦІЯ Засоби масової інформації –важливий інструмент ПР.ppt
 
Defectolog_presentation_for_website.pptx
Defectolog_presentation_for_website.pptxDefectolog_presentation_for_website.pptx
Defectolog_presentation_for_website.pptx
 
psychologistpresentation-230215175859-50bdd6ed.ppt
psychologistpresentation-230215175859-50bdd6ed.pptpsychologistpresentation-230215175859-50bdd6ed.ppt
psychologistpresentation-230215175859-50bdd6ed.ppt
 
Супрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptxСупрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptx
 
Презентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptxПрезентациія для сайта Група «Незабудка».pptx
Презентациія для сайта Група «Незабудка».pptx
 
Бомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентаціяБомбочки для ванни своїми руками презентація
Бомбочки для ванни своїми руками презентація
 
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості  та дозвілля для дітейpptxБібліотека – розвиток дитячої творчості  та дозвілля для дітейpptx
Бібліотека – розвиток дитячої творчості та дозвілля для дітейpptx
 
Горбонос 2024_presentation_for_website.pptx
Горбонос 2024_presentation_for_website.pptxГорбонос 2024_presentation_for_website.pptx
Горбонос 2024_presentation_for_website.pptx
 
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdfЗастосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
Застосування Гайду безбар’єрності в роботі закладів культури громад Одещини.pdf
 
Р.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняР.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповідання
 
Проблеми захисту лісу в Україні та шляхи вирішення
Проблеми захисту лісу в Україні та шляхи вирішенняПроблеми захисту лісу в Україні та шляхи вирішення
Проблеми захисту лісу в Україні та шляхи вирішення
 
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
 
Супрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptxСупрун презентація_presentation_for_website.pptx
Супрун презентація_presentation_for_website.pptx
 

Coding for Future in Lutsk. JavaScript. Part 6

  • 1. Зовнішні і глобальні змінні Функція може працювати зі змінними, оголошеними зовні: var day = 'понеділок'; function showDay() { alert( day ); // виведення зовнішньої змінної day = 'вівторок'; // (1) зніна значення зовнішньої змінної var message = 'Сьогодні ' + day; alert( message ); } alert( day ); // понеділок showDay(); alert( day ); // вівторок, бо функція змінила значення змінної Змінна, оголошена на рівні всього скрипта називається глобальною
  • 2. Параметри функції Функції можна передавати параметри (аргументи), з якими вона працюватиме. function rectangle(a,b) { var S = a*b; var P = 2*(a+b); alert ("Площа прямокутника = " + S); alert ("Периметр прямокутника = " + P); } rectangle(2,3);
  • 3. Аргументи по замовчуванню У функції може бути будь-яка кількість аргументів. Якщо якийсь аргумент при виклику функції не заданий, він буде рівним undefined. Приклад: function rectangle(a,b) { alert ( "a = " + a + ", b = " + b ); var S = a*b; var P = 2*(a+b); alert ("Площа прямокутника = " + S); alert ("Периметр прямокутника = " + P); } rectangle(2); Виведе спочатку “a = 2, b = undefined”, а потім “Площа прямокутника = NaN”, “Периметр прямокутника = NaN”.
  • 4. Завжди можна за своїм бажання задати значення аргументів по замовчуванню. Наприклад: function rectangle(a,b) { alert ( "a = " + a + ", b = " + b ); if (b === undefined) { b = a; alert( "Будемо вважати, що маємо справу з квадратом" ); } var S = a*b; var P = 2*(a+b); alert ("Площа прямокутника = " + S); alert ("Периметр прямокутника = " + P); } rectangle(2); Альтернативний спосіб (замість блоку if): b = b || a; “Зайві” аргументи ігноруються. rectangle(2, 3, 4, "ще щось"); // все добре працює
  • 5. Повернення значення. return function getArea(a,b) { return a*b; } function getPerimeter(a,b) { return 2*(a+b); } var S = getArea(2,3); alert( "S = " + S ); alert( "P = " + getPerimeter(2,3) );
  • 6. Директив return може бути кілька function showSign(number) { if (number > 0) { return "Плюс"; } else if (number < 0) { return "Мінус"; } else { return; } } alert( showSign(1) ); // Плюс alert( showSign(-1) ); // Мінус alert( showSign(0) ); // undefined
  • 7. Задача 22 Напишіть функцію, яка виводить текст “Я вивчаю JavaScript” і викличте її. Задача 23 Напишіть функцію, яка виводить текст “Я вивчаю parameter”, де parameter має вводитись як аргумент. Викличте її з аргументом JavaScript.
  • 8. Задача 24 Напишіть функцію min(a,b), яка повертає менше з чисел a,b. Приклад роботи: min(2, 5) == 2 min(3, -1) == -1 min(1, 1) == 1
  • 9. Задача 25 Напишіть функцію pow(x,n), яка повертає x в степені n, тобто перемножує x на себе n разів і повертає результат. Вважається, що x і n – цілі додатні числа. Створіть сторінку, яка питає x і n, а потім виводить результат pow(x,n).
  • 10. Розв’язок function pow(x, n) { var result = x; for (var i = 1; i < n; i++) { result *= x; } return result; } var x = prompt("x?", ''); var n = prompt("n?", ''); if (n <= 1) { alert( 'Степінь ' + n + ' не підтримується, введіть ціле n > 1' ); } else { alert( pow(x, n) ); }
  • 11. Функціональні вирази. Function Expression Синтаксис: var f = function(параметри) { // тіло функції }; Основна відмінність: функції, оголошені як Function Declaration, створюються інтерпретатором до виконання коду. myFunction(); // 1 function myFunction() { alert( 1 ); }
  • 12. Функціональні вирази дозволяють застосувати умовне оголошення функції, наприклад: var age = prompt('Ваш вік?'); var sayHi; if (age >= 18) { sayHi = function() { alert( 'Заходьте' ); } } else { sayHi = function() { alert( 'До 18 не можна' ); } } sayHi();
  • 13. Рекурсія В тілі функції можна викликати інші функції, зокрема, саму себе. function power(base, exponent) { if (exponent == 0) return 1; else return base * power(base, exponent - 1); } alert(power(2, 3));
  • 14. Задача 26 Напишіть функцію sumTo(n), яка для даного n рахує суму чисел від 1 до n. Задачу можна розв'язати трьома способами: 1. Через цикл. 2. Через рекурсію. 3. Через формулу суми арифметичної прогресії.
  • 15. Розв'язки 1. function sumTo(n) { var sum = 0; for (var i = 1; i <= n; i++) { sum += i; } return sum; }
  • 16. 2. function sumTo(n) { if (n == 1) return 1; return n + sumTo(n - 1); } alert( sumTo(100) ); 3. function sumTo(n) { return n * (n + 1) / 2; }
  • 17. Задача 27 Напишіть функцію для обчислення факторіала числа. n! = n*(n-1)*(n-2)*...*2*1.
  • 18. Розв'язок function factorial(n) { return (n != 1) ? n * factorial(n - 1) : 1; } alert( factorial(5) ); // 120
  • 19. Задача 28 Послідовність чисел Фібоначчі визначається формулою Fn = Fn-1 + Fn-2. Тобто наступне число є сумою двох попередніх. Перші два числа рівні 1, далі 2 (1+1), 3(1+2), 5(2+3) і так далі: 1, 1, 2, 3, 5, 8, 13, 21.... Напишіть функцію fib(n), яка повертає n-е число Фібоначчі. Приклад роботи: function fib(n) { /* ваш код */ } alert( fib(3) ); // 2 alert( fib(7) ); // 13 alert( fib(77)); // 5527939700884757