Функции

Описание

function sayHi() {
   console.log('Hi');
}

Вызов

sayHi();

Передача параметров

function sayNum(x) {
   console.log(x); //выдаст 5
}
sayNum(5);

Возвращение значений

function sayNum(x) {
      return 2*x; 
}
console.log(sayNum(5)); // выдаст 10

После первого return функция завершается

function sayNum(x) {
      return 2*x; 
      return 3*x
}
console.log(sayNum(5)); // ?

Function Declaration

Sq(7); // ?

function Sq(x) {
  return x*x;
}

Sq(5);// ?

Function Expression

Sq(7); //

var Sq = function(x) {
  return x*x;
}

Sq(5);

var Sq2 = Sq;

console.log(Sq2(9)); //81

В данном примере мы видим, что функция может быть переменной

Создание через конструктор new Function

var adder = new Function('a', 'b', 'return a + b');

// now call the function
adder(2, 6);

Не самый распространенный способ создания функции, но тем не менее отлично показывающий, что функция является также еще и объектом! И этим свойством мы будем пользоваться в дальнейшем.

Локальные, глобальные переменные

<script>
var x=5; // глобальная

function sayNum() {
   var x=7; //локальная
   console.log(x); //7
}

sayNum();
console.log(x); // 5
</script>

Функция с вызовом на месте

(function() {
console.log('Я существую');
})();

Такая конструкция позволяет выполнять код, не создавая новых глобальных переменных.

Например

var x = 5;

(function() {
  var x = 7;
  var a = 10;
})();

console.log(x);// 5
console.log(a);// Undefined

Формальные и фактические параметры

//формальные
function summ(a,b) {
  return a+b;
}

//фактические
summ(5,7); //12

summ(5); //NaN
//В недостающий параметр передается Undefined

summ(5,7,11); //12

Массив arguments

summ(5,7,11); //23

function summ(a,b) {
  var num =arguments.length;

  var sum=0;
  for (var i=0;i<num;i++){
      sum+=arguments[i];
  }
  return sum;
}

Практика:

  1. Написать функцию, которая считает сумму двух чисел
  2. Пишем функцию, которая считает площадь прямоугольника
  3. Пишем функцию, которая считает расстояние между двумя точками (понадобится для agar.io)
  4. Есть длины двух сторон прямоугольника. Посчитать площадь прямоугольника и его периметр (тренируем возращение нескольких значений)
  5. Сделать функцию, которая разбивает число на два множителя. Множители должны возвращаться из функции.
  6. Изменение цвета DIV'a в зависимости от того какое число было введено
  7. НОД
  8. Сделать функцию, которая на вход получает массив координат и функцию для отрисовки фигур. Попробовать передать туда функцию, которая бы рисовала квадраты, а потом функцию, которая бы рисовала круги

  9. Сделать функцию, которая считает количество своих вызовов (если пройдены замыкания)

results matching ""

    No results matching ""