Функция как переменная в JavaScript

Итак, в предыдущем уроке мы выяснили, что обратившись к функции без круглых скобок, мы получаем ее исходный код.

На самом деле все намного интереснее. В JavaScript, в отличие от других языков, функции являются такими же значениями переменных, как числа, строки и массивы.

Давайте посмотрим на примере. Пусть у нас есть, например, функция func:

javascriptfunction func() {
  console.log('!');
}

На самом деле у нас нет функции func. У нас есть переменная func, хранящая в себе исходный код функции.

Мы можем, к примеру, затереть переменную func чем-нибудь другим, например, строкой. В этом случае функция func больше не будет функцией, а будет строкой. Смотрите на примере:

javascriptfunction func() {
  console.log('!');
}
func(); // выведет '!'

func = 'string'; // затрем переменную func
console.log(func); // выведет 'string'
Задание 1

Сделайте функцию func, которая будет возвращать через return какую-либо строку.

Задание 2

Выведите результат работы функции func в консоль.

Задание 3

Выведите исходный код функции func в консоль.

Задание 4

Запишите в переменную func число 123, тем самым затерев функцию из этой переменной. Выведите новое значение переменной func в консоль.