Найти тему
Стать программистом

Как использовать функции в JS

Оглавление

Функции как значения

Привязка функции обычно просто действует как имя для определенной части программы. Такая привязка определяется один раз и никогда не изменяется. Это позволяет легко перепутать функцию и ее имя.

https://avatars.mds.yandex.net/get-pdb/1649807/c43e2430-8e2e-4552-b6c3-d803e0616593/s1200
https://avatars.mds.yandex.net/get-pdb/1649807/c43e2430-8e2e-4552-b6c3-d803e0616593/s1200

Значение функции может делать все, что могут делать другие значения. Вы можете использовать его в произвольных выражениях, а не просто вызывать. Можно сохранить значение функции в новой привязке, передать ее в качестве аргумента функции и т. д. Аналогично, привязка, которая содержит функцию, все еще является обычной привязкой и может (если не является константой) получить новое значение, например, так:

let launchMissiles = function () {
missileSystem.launch ("now");
};
if (safeMode) {
launchMissiles = function () {/ * ничего не делать * /};
}

Правильное использование

https://appdividend.com/wp-content/uploads/2019/03/Javascript-Strict-Mode-Tutorial-With-Example-Modern-Use-of-Strict-Mode-768x757.png
https://appdividend.com/wp-content/uploads/2019/03/Javascript-Strict-Mode-Tutorial-With-Example-Modern-Use-of-Strict-Mode-768x757.png

Существует несколько более короткий способ создания привязки функции. Когда ключевое слово function используется в начале оператора, оно работает по-другому.

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

Это создание функции. Оператор определяет квадрат привязки и указывает для данной функции. Это немного легче написать и не требует точки с запятой после функции.

Есть одна тонкость с этой формой определения функции.

console.log("Будущее говорит:", future());
function future() {
return "У тебя никогда не будет летающей машины";
}

Предыдущий код работает, даже если функция определена ниже кода, который его использует. Объявления функций не являются частью регулярного потока управления сверху вниз. Они концептуально перемещены в верхнюю часть своей области и могут использоваться всем кодом в этой области. Это иногда полезно, потому что предлагает свободу упорядочивать код таким способом, который кажется осмысленным, не беспокоясь о необходимости определить все функции перед их использованием.

Функция - стрелка

https://uwebdesign.ru/wp-content/uploads/2017/03/js-arrow-functions-thumb.jpg
https://uwebdesign.ru/wp-content/uploads/2017/03/js-arrow-functions-thumb.jpg

Существует третье обозначение для функций, которое сильно отличается от других. Вместо ключевого слова function используется стрелка =>, состоящая из знака равенства и символа «больше» (не путать с оператором «больше или равно», который пишется >= ).

const power = (base, exponent) => {
let result = 1;
for (let count = 0; count < exponent; count++) {
result *= base;
}
return result;
};

Стрелка идет после списка параметров и сопровождается телом функции. Он выражает что-то вроде «этот вход (параметры) производит этот результат (тело)».

Когда есть только одно имя параметра, вы можете опустить круглые скобки вокруг списка параметров. Если тело является отдельным выражением, а не блоком в фигурных скобках, это выражение будет возвращено из функции. Итак, эти два определения квадрата делают одно и то же:

const square1 = (x) => { return x * x; };
const square2 = x => x * x;

Когда функция стрелки вообще не имеет параметров, ее список параметров является просто пустым набором скобок.

const horn = () => {
console.log("Toot");
};

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

Подписывайтесь на канал "Стать программистом"

Буду признателен за поставленный лайк!