JavaScript. Функции

Содержание

Слайд 2

ФУНКЦИИ избавляют от повторений кода; улучшают структуру программы; уменьшают вероятность появления

ФУНКЦИИ

избавляют от повторений кода;
улучшают структуру программы;
уменьшают вероятность появления ошибок и повышают

устойчивость к ошибкам.
Слайд 3

КОГДА ДЕЛАТЬ переписываем одни и те же последовательности; много мелких подробностей;

КОГДА ДЕЛАТЬ

переписываем одни и те же последовательности;
много мелких подробностей;
слишком длинная основная

программа;
имеются слишком сложные подзадачи;
необходимость повторного использования кода в других программах.
Слайд 4

ВСТРОЕННЫЕ ФУНКЦИИ alert(); console.log(); И так далее… Это точно такие же

ВСТРОЕННЫЕ ФУНКЦИИ

alert();
console.log();
И так далее…
Это точно такие же функции, как и те,

которые мы будем создавать, только они уже зарезервированы языком JavaScript.
Слайд 5

ОБЪЯВЛЕНИЕ ФУНКЦИИ function functionName (argument) { // body of function }

ОБЪЯВЛЕНИЕ ФУНКЦИИ

function functionName (argument) {
// body of function
}
functionName – имя функции.

Именно его будем использовать в дальнейшем коде
Слайд 6

АРГУМЕНТ function functionName (argument) { // body of function } argument

АРГУМЕНТ

function functionName (argument) {
// body of function
}
argument - Аргумент. Это то

что мы передаем в функцию на обработку (какие-то данные)
Слайд 7

ТЕЛО ФУНКЦИИ function functionName (argument) { // body of function }

ТЕЛО ФУНКЦИИ

function functionName (argument) {
// body of function
}
body of function -

Непосредственно тело функции.
Слайд 8

ПРИМЕР ФУНКЦИИ function helloWorld () { alert("Hello, World!"); } helloWorld(); //

ПРИМЕР ФУНКЦИИ

function helloWorld () {
alert("Hello, World!");
}
helloWorld(); // Выведет на экран Hello,

World!
helloWorld(); // Еще раз выведет на экран Hello, World!
Слайд 9

ОБЛАСТЬ ВИДИМОСТИ function helloWorld () { var hello = "hello"; console.log(hello);

ОБЛАСТЬ ВИДИМОСТИ

function helloWorld () {
var hello = "hello";
console.log(hello);
}
helloWorld(); // hello
console.log(hello); //

ReferenceError: hello is not defined
Слайд 10

ОБЛАСТЬ ВИДИМОСТИ function helloWorld () { hello = "hello" console.log(hello); }

ОБЛАСТЬ ВИДИМОСТИ

function helloWorld () {
hello = "hello"
console.log(hello);
}
helloWorld(); // hello

hello2 = hello

+ "!";

console.log(hello2); //hello!

Слайд 11

ОБЛАСТЬ ВИДИМОСТИ var world = "world!"; function helloWorld () { var

ОБЛАСТЬ ВИДИМОСТИ

var world = "world!";
function helloWorld () {
var world

= "hello!";
console.log(world);
}

helloWorld(); //hello!
console.log(world); //world!

Слайд 12

ОБЛАСТЬ ВИДИМОСТИ function count() { for (var i = 0; i

ОБЛАСТЬ ВИДИМОСТИ

function count() {
for (var i = 0; i < 3;

i++) {
var j = i * 2;
}
alert( i ); // i=3
alert( j ); // j=4
}
count()
Слайд 13

ОБЛАСТЬ ВИДИМОСТИ function count() { var i, j; // передвинули объявления

ОБЛАСТЬ ВИДИМОСТИ

function count() {
var i, j; // передвинули объявления var

в начало
for (i = 0; i < 3; i++) {
j = i * 2;
}
alert( i ); // i=3
alert( j ); // j=4
}
count();
Слайд 14

ОБЛАСТЬ ВИДИМОСТИ function count() { for (let i = 0; i

ОБЛАСТЬ ВИДИМОСТИ

function count() {
for (let i = 0; i < 3;

i++) {
var j = i * 2;
}
alert( i ); // i=3
alert( j ); // j=4
}
count();
Слайд 15

ВНЕШНИЕ ПЕРЕМЕННЫЕ var world = " world!“; function helloWorld () {

ВНЕШНИЕ ПЕРЕМЕННЫЕ

var world = " world!“;
function helloWorld () {
hello = "hello";
console.log(hello+world);
}
helloWorld();

// hello world!
Слайд 16

АРГУМЕНТЫ function functionName (argument) { //функция принимает аргумент // body of

АРГУМЕНТЫ

function functionName (argument) { //функция принимает аргумент
// body of function
}
argument -

Аргумент. Это то, что мы передаем в функцию на обработку (какие-то данные)

functionName(5); - Передаем 5 в качестве аргумента в функцию

Слайд 17

АРГУМЕНТЫ Пример: function myFunc(argument) { console.log(argument+95); } myFunc(5); // 100

АРГУМЕНТЫ

Пример:
function myFunc(argument) {
console.log(argument+95);
}
myFunc(5); // 100

Слайд 18

НЕСКОЛЬКО АРГУМЕНТОВ function myFunc(arg, arg2, arg3, someText) { console.log("arg = "

НЕСКОЛЬКО АРГУМЕНТОВ

function myFunc(arg, arg2, arg3, someText) {
console.log("arg = " + arg);
console.log("arg2

= " + arg2);
console.log("arg3 = " + arg3);
console.log("someText = " + someText);
}
myFunc(2,3,5,"Какой-то текст");
Слайд 19

НЕСКОЛЬКО АРГУМЕНТОВ function myFunc(arg, arg2, arg3, someText) { console.log("arg = "

НЕСКОЛЬКО АРГУМЕНТОВ

function myFunc(arg, arg2, arg3, someText) {
console.log("arg = " + arg);
console.log("arg2

= " + arg2);
console.log("arg3 = " + arg3);
console.log("someText = " + someText); //undefined
}
myFunc(2,3,5);
Слайд 20

ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ function myFunc(arg, someText = "Hello, world!") { console.log("arg

ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ
function myFunc(arg, someText = "Hello, world!") {
console.log("arg = "

+ arg);
console.log("someText = " + someText);
}
myFunc(2); // arg = 2, someText = Hello, world!
Слайд 21

НЕСКОЛЬКО АРГУМЕНТОВ function myFunc(arg, someText = "Hello, world!") { console.log("arg =

НЕСКОЛЬКО АРГУМЕНТОВ

function myFunc(arg, someText = "Hello, world!") {
console.log("arg = " +

arg);
console.log("someText = " + someText);
}
myFunc(2,3); // arg = 2, someText = 3

myFunc (2);

Слайд 22

НЕСКОЛЬКО АРГУМЕНТОВ function myFunc(arg, someText) { if (someText === undefined) {someText

НЕСКОЛЬКО АРГУМЕНТОВ

function myFunc(arg, someText) {
if (someText === undefined) {someText = "Текст

по умолчанию"}
console.log("arg = " + arg);
console.log("someText = " + someText);
}
myFunc(2);
Слайд 23

НЕСКОЛЬКО АРГУМЕНТОВ function myFunc(arg, someText) { someText = someText || "Какой-то

НЕСКОЛЬКО АРГУМЕНТОВ

function myFunc(arg, someText) {
someText = someText || "Какой-то текст";
console.log("arg

= " + arg);
console.log("someText = " + someText);
}
myFunc(2);
Слайд 24

ВОЗВРАТ ЗНАЧЕНИЯ - RETURN function myFunc (argument) { return argument*argument; } console.log (myFunc(4)); //4*4=16

ВОЗВРАТ ЗНАЧЕНИЯ - RETURN
function myFunc (argument) {
return argument*argument;
}
console.log (myFunc(4)); //4*4=16

Слайд 25

ВАРИАНТ ВЫЗОВА ФУНКЦИИ function myFunc (argument) { return argument*argument; } var func = myFunc(4); console.log(func);

ВАРИАНТ ВЫЗОВА ФУНКЦИИ
function myFunc (argument) {
return argument*argument;
}
var func = myFunc(4);
console.log(func);

Слайд 26

ПРИМЕР Даны числа a, b, c, d, e. Найти площадь фигуры.

ПРИМЕР

Даны числа a, b, c, d, e. Найти площадь фигуры. Для

подсчета площади треугольника использовать функцию.
Слайд 27

РЕШЕНИЕ function squareTriangle (x, y, z) { var p = (x

РЕШЕНИЕ

function squareTriangle (x, y, z) {
var p = (x +

y + z) / 2;
return Math.sqrt(p * (p - x) * (p - y) * (p - z));
}
var a=4, b=4, c = 6, e = 3, d = 5, square;
square = squareTriangle (a, b, c) + squareTriangle (c, d, e);
console.log (square);
Слайд 28

ПРИМЕР Даны два целых числа. Поменять местами их значения. function remove

ПРИМЕР

Даны два целых числа. Поменять местами их значения.

function remove (x,y) {

let z = x;
x = y;
y = z;
return [x, y];
}
Слайд 29

ПРИНЯТИЕ РЕЗУЛЬТАТОВ var c = remove (a,b); a = c[0]; b

ПРИНЯТИЕ РЕЗУЛЬТАТОВ
var c = remove (a,b);
a = c[0];
b = c[1];
console.log (`a=${a},

b=${b}`)

[a,b] = remove (a,b);
console.log (`a=${a}, b=${b}`);

let a = 2, b = 5;

Слайд 30

ИМЯ ФУНКЦИИ showMessage(..) // "показать" сообщение getAge(..) // "получает" возраст calcD(..)

ИМЯ ФУНКЦИИ

showMessage(..) // "показать" сообщение
getAge(..) // "получает" возраст
calcD(..) // "вычисляет" дискриминант
createForm(..)

// "создает" форму
checkPermission(..) // "проверяет" разрешение

 jQuery - $

 Prototype - $$

 LoDash - _

Слайд 31

ФУНКЦИОНАЛЬНЫЕ ВЫРАЖЕНИЯ function sayHello() { alert( "Hello" ); } alert( sayHello ); // выведет код функции

ФУНКЦИОНАЛЬНЫЕ ВЫРАЖЕНИЯ

function sayHello() {
alert( "Hello" );
}
alert( sayHello ); // выведет

код функции
Слайд 32

ФУНКЦИОНАЛЬНЫЕ ВЫРАЖЕНИЯ function sayHello() { // (1) alert( "Hello" ); }

ФУНКЦИОНАЛЬНЫЕ ВЫРАЖЕНИЯ

function sayHello() { // (1)
alert( "Hello" );
}
var func =

sayHello; // (2)
func(); // Hello // (3)
sayHello = null;
sayHello(); // ошибка (4)
Слайд 33

ОБЪЯВЛЕНИЕ FUNCTION EXPRESSION var f = function(параметры) { // тело функции

ОБЪЯВЛЕНИЕ FUNCTION EXPRESSION

var f = function(параметры) {
// тело функции
};

var sayHello

= function(name) {
alert( "Привет, " + name );
};
sayHello('Вася');
Слайд 34

СРАВНЕНИЕ С FUNCTION DECLARATION // Function Declaration function sum(a, b) {

СРАВНЕНИЕ С FUNCTION DECLARATION

// Function Declaration
function sum(a, b) {
return a +

b;
}
// Function Expression
var sum = function(a, b) {
return a + b;
}
Слайд 35

СРАВНЕНИЕ С FUNCTION DECLARATION sayHello("Вася"); // Привет, Вася function sayHello(name) {

СРАВНЕНИЕ С FUNCTION DECLARATION

sayHello("Вася"); // Привет, Вася
function sayHello(name) {
alert( "Привет, "

+ name );
}

sayHello("Вася"); // ошибка!
var sayHello = function(name) {
alert( "Привет, " + name );
}

Слайд 36

СРАВНЕНИЕ С FUNCTION DECLARATION var sayHello = function(name) { alert( "Привет,

СРАВНЕНИЕ С FUNCTION DECLARATION
var sayHello = function(name) {
alert( "Привет, " +

name );
}
sayHello("Вася"); // Привет, Вася
Слайд 37

АНОНИМНЫЕ ФУНКЦИИ function ask(question, yes, no) { if (confirm(question)) yes() else

АНОНИМНЫЕ ФУНКЦИИ

function ask(question, yes, no) {
if (confirm(question)) yes()
else no();

}
function showOk() {
alert( "Вы согласились." );
}
function showCancel() {
alert( "Вы отменили выполнение." );
}
// использование
ask("Вы согласны?", showOk, showCancel);
Слайд 38

АНОНИМНЫЕ ФУНКЦИИ function ask(question, yes, no) { if (confirm(question)) yes() else

АНОНИМНЫЕ ФУНКЦИИ

function ask(question, yes, no) {
if (confirm(question)) yes()
else no();
}
ask(

"Вы согласны?",
function() { alert("Вы согласились."); },
function() { alert("Вы отменили выполнение."); }
Слайд 39

РЕКУРСИЯ pow(x, n) = x * pow(x, n - 1); xn

РЕКУРСИЯ

pow(x, n) = x * pow(x, n - 1);

xn = x *

xn-1

pow(2, 4) = 2 * pow(2, 3)
pow(2, 3) = 2 * pow(2, 2)
pow(2, 2) = 2 * pow(2, 1)
pow(2, 1) = 2

Слайд 40

РЕКУРСИЯ function pow(x, n) { if (n != 1) { //

РЕКУРСИЯ

function pow(x, n) {
if (n != 1) { // пока

n != 1, сводить вычисление pow(x,n) к pow(x,n-1)
return x * pow(x, n - 1);
} else {
return x;
}
}
var result = pow(2, 3);
console.log(result);
Слайд 41

КОНТЕКСТ ВЫПОЛНЕНИЯ Контекст: { x: 2, n: 3, строка 1 }

КОНТЕКСТ ВЫПОЛНЕНИЯ

Контекст: { x: 2, n: 3, строка 1 }

function pow(x,

n) {
if (n != 1) {
return x * pow(x, n - 1);
} else {
return x;
}
}
Слайд 42

pow(2, 3) x=2, n=3 Контекст: { x: 2, n: 3, строка

pow(2, 3)

x=2, n=3

Контекст: { x: 2, n: 3, строка 1 }

pow(2,

2)

x=2, n=2

Контекст: { x: 2, n: 3, строка 3 }

Контекст: { x: 2, n: 2, строка 1 }

Слайд 43

pow(2, 1) x=2, n=1 Контекст: { x: 2, n: 3, строка

pow(2, 1)

x=2, n=1

Контекст: { x: 2, n: 3, строка 3 }

Контекст:

{ x: 2, n: 1, строка 1 }

Контекст: { x: 2, n: 2, строка 3 }

Слайд 44

Выход из pow(2, 1) function pow(x, n) { if (n !=

Выход из pow(2, 1)

function pow(x, n) {
if (n != 1) {

return x * pow(x, n - 1);
} else {
return x; // первая степень числа равна самому числу
}
}

Контекст: { x: 2, n: 3, строка 3 }

Контекст: { x: 2, n: 2, строка 3 }

Слайд 45

Выход из pow(2, 2) Контекст: { x: 2, n: 3, строка

Выход из pow(2, 2)

Контекст: { x: 2, n: 3, строка 3 }

Выход

из pow(2, 3)

function pow(x, n) {
var result = x;
for (var i = 1; i < n; i++) {
result *= x;
}
return result;
}

Слайд 46

ПРИМЕР Напишите функцию sumTo(n), которая для данного n вычисляет сумму чисел

ПРИМЕР

Напишите функцию sumTo(n), которая для данного n вычисляет сумму чисел от 1 до n, например:
sumTo(1)

= 1
sumTo(2) = 2 + 1 = 3
sumTo(3) = 3 + 2 + 1 = 6
sumTo(4) = 4 + 3 + 2 + 1 = 10
...
sumTo(100) = 100 + 99 + ... + 2 + 1 = 5050
Слайд 47

РЕШЕНИЕ ЦИКЛОМ function sumTo(n) { var sum = 0; for (var

РЕШЕНИЕ ЦИКЛОМ

function sumTo(n) {
var sum = 0;
for (var i

= 1; i <= n; i++) {
sum += i;
}
return sum;
}
console.log ( sumTo(100) );
Слайд 48

РЕШЕНИЕ РЕКУРСИЕЙ function sumTo(n) { if (n == 1) return 1;

РЕШЕНИЕ РЕКУРСИЕЙ

function sumTo(n) {
if (n == 1) return 1;
return

n + sumTo(n - 1);
}
console.log ( sumTo(100) );
Слайд 49

РЕШЕНИЕ ПО ФОРМУЛЕ function sumTo(n) { return n * (n +

РЕШЕНИЕ ПО ФОРМУЛЕ

function sumTo(n) {
return n * (n + 1)

/ 2;
}
console.log ( sumTo(100) );
Слайд 50

ЗАДАЧИ Описать функцию, вычисляющую вторую, третью и четвертую степени числа А

ЗАДАЧИ

Описать функцию, вычисляющую вторую, третью и четвертую степени числа А и

возвращающую эти степени соответственно в переменных B, C и D.
Описать функцию, добавляющую к целому положительному числу К справа цифру D. С помощью этой функции последовательно добавить к данному числу К справа данные цифры D1 и D2, выводя результат каждого добавления.
Слайд 51

Описать функцию MinMax(X, Y), записывающую в переменную X минимальное из значений

Описать функцию MinMax(X, Y), записывающую в переменную X минимальное из значений

X и Y, а в переменную Y – максимальное из этих значений. Используя четыре вызова этой процедуры, найти минимальное и максимальное из данных чисел A, B, C, D.
Описать функцию SortInc3(A, B, C), меняющую содержимое переменных A, B, C таким образом, чтобы их значения оказались упорядоченными по возрастанию.
Слайд 52

Описать процедуру ShiftLeft3(A, B, C), выполняющую левый циклический сдвиг: значение A

Описать процедуру ShiftLeft3(A, B, C), выполняющую левый циклический сдвиг: значение A

переходит в C, значение C – в B, значение B – в A.
Описать функцию Sign(X), возвращающую для числа X следующие значения: –1, если X < 0; 0, если X = 0; 1, если X > 0. С помощью этой функции найти значение выражения Sign(A) + Sign(B) для данных чисел A и B.
Описать функцию RingS(R1, R2), находящую площадь кольца, заключенного между двумя окружностями с общим центром и радиусами R1 и R2.
Слайд 53

Функция принимает параметр - возраст пользователя. Если число больше 16 –

Функция принимает параметр - возраст пользователя. Если число больше 16 –

то выводим «добро пожаловать», если меньше – “вы еще молоды”.
Создайте функцию, которая считает длину массива и возвращает ее в виде числа. Массив в функцию передается как аргумент. Если аргумент не задан – выводится сообщение об ошибке.
Пользователь вводит числа. Если число больше 10, то функция возвращает квадрат числа, если меньше 7 – пишет, что число меньше 7. Если 8, 9 – то возвращает соответственно 7 или 8. Реализуйте решение с несколькими return.
Слайд 54

Напишите игру «Угадай число». При загрузке страницы генерируется случайное число от

Напишите игру «Угадай число». При загрузке страницы генерируется случайное число от

0 до 10. Пользователю дается три попытки угадать. При каждой проверке выдается подсказка: больше или меньше. При угадывании, завершении числа попыток выдается оповещение.
Количество попыток выводится на экран.