Учебник по JS

ГЛАВНАЯ JS Введение JS Куда Вывод JS Заявления JS JS-синтаксис JS-комментарии JS-переменные JS Пусть Константа JS JS-операторы JS-арифметика Назначение JS JS-типы данных JS-функции JS-объекты JS-события JS-строки Строковые методы JS Поиск строки JS Шаблоны строк JS JS-номера Методы номеров JS JS-массивы Методы массива JS Сортировка массива JS Итерация массива JS Константа массива JS JS-даты Форматы даты JS Методы получения даты JS Методы установки даты JS JS-математика JS Случайный JS Булевы значения Сравнение JS JS-условия JS-переключатель JS цикл для Цикл JS для входа Цикл JS для Цикл JS во время Перерыв JS JS-итерации JS-наборы JS-карты JS Typeof Преобразование типов JS JS побитовый JS регулярное выражение JS-ошибки Область JS JS-подъем Строгий режим JS JS это ключевое слово Функция стрелки JS JS-классы JS JSON JS-отладка Руководство по стилю JS Лучшие практики JS JS-ошибки JS-производительность Зарезервированные слова JS

JS-версии

JS-версии JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/пограничный История JS

JS-объекты

Определения объектов Свойства объекта Методы объекта Отображение объекта Средства доступа к объектам Конструкторы объектов Прототипы объектов Итерации объектов Наборы объектов Карты объектов Ссылка на объект

JS-функции

Определения функций Параметры функции Вызов функции Вызов функции Функция Применить Закрытие функций

JS-классы

Введение в класс Наследование классов Статический класс

JS асинхронный

Обратные вызовы JS JS асинхронный JS-обещания JS асинхронный/ожидание

JS HTML DOM

Дом Введение DOM-методы Документ DOM DOM-элементы DOM HTML DOM-формы ДОМ CSS DOM-анимации События ДОМ Слушатель событий DOM DOM-навигация DOM-узлы Коллекции DOM Списки узлов DOM

Спецификация браузера JS

JS-окно JS-экран Местоположение JS История JS JS-навигатор Всплывающее оповещение JS JS Тайминг JS-куки

JS-веб-API

Введение в веб-API API веб-форм API истории веб-поиска API веб-хранилища API веб-работника API веб-выборки API веб-геолокации

JS АЯКС

Введение в АЯКС AJAX XMLHttp АЯКС-запрос AJAX-ответ XML-файл AJAX АЯКС PHP АЯКС АСП База данных AJAX AJAX-приложения Примеры AJAX

JS JSON

Введение в JSON Синтаксис JSON JSON против XML Типы данных JSON Анализ JSON Строковая JSON JSON-объекты JSON-массивы JSON-сервер JSON PHP JSON HTML JSON JSONP

JS против JQuery

Селекторы jQuery JQuery HTML jQuery CSS JQuery DOM

JS-графика

JS-графика JS Холст JS сюжет JS Chart.js JS Google Диаграмма JS D3.js

JS-примеры

JS-примеры JS HTML DOM JS HTML-ввод HTML-объекты JS HTML-события JS JS-браузер JS-редактор JS-упражнения JS-викторина JS-сертификат

JS-ссылки

Объекты JavaScript HTML DOM-объекты


Функции JavaScript


Функция JavaScript — это блок кода, предназначенный для выполнения определенной задачи.

Функция JavaScript выполняется, когда «что-то» вызывает ее (вызывает).


Пример

function myFunction(p1, p2) {
  return p1 * p2;   // The function returns the product of p1 and p2
}

Синтаксис функций JavaScript

Функция JavaScript определяется с помощью functionключевого слова, за которым следует имя , за которым следуют круглые скобки () .

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

Скобки могут включать названия параметров, разделенные запятыми:
( параметр1, параметр2, ... )

Код, который должен быть выполнен функцией, заключен в фигурные скобки: {}

function name(parameter1, parameter2, parameter3) {
  // code to be executed
}

Параметры функции перечислены в скобках () в определении функции.

Аргументы функции — это значения , полученные функцией при ее вызове.

Внутри функции аргументы (параметры) ведут себя как локальные переменные.

Функция во многом аналогична процедуре или подпрограмме в других языках программирования.


Вызов функции

Код внутри функции будет выполняться, когда «что-то» вызывает (вызывает) функцию:

  • Когда происходит событие (когда пользователь нажимает кнопку)
  • Когда он вызывается (вызывается) из кода JavaScript
  • Автоматически (вызывается автоматически)

Вы узнаете намного больше о вызове функции позже в этом руководстве.



Возврат функции

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

Если функция была вызвана из оператора, JavaScript «вернется» для выполнения кода после вызова оператора.

Функции часто вычисляют возвращаемое значение . Возвращаемое значение «возвращается» обратно «вызывающему»:

Пример

Вычислите произведение двух чисел и верните результат:

let x = myFunction(4, 3);   // Function is called, return value will end up in x

function myFunction(a, b) {
  return a * b;             // Function returns the product of a and b
}

Результат в х будет:

12

Почему функции?

Вы можете повторно использовать код: определите код один раз и используйте его много раз.

Вы можете использовать один и тот же код много раз с разными аргументами, чтобы получить разные результаты.

Пример

Преобразовать градусы Фаренгейта в градусы Цельсия:

function toCelsius(fahrenheit) {
  return (5/9) * (fahrenheit-32);
}
document.getElementById("demo").innerHTML = toCelsius(77);

Оператор () вызывает функцию

Используя приведенный выше пример, toCelsiusссылается на объект функции и toCelsius()ссылается на результат функции.

Доступ к функции без () вернет объект функции вместо результата функции.

Пример

function toCelsius(fahrenheit) {
  return (5/9) * (fahrenheit-32);
}
document.getElementById("demo").innerHTML = toCelsius;

Функции, используемые в качестве значений переменных

Функции можно использовать так же, как и переменные, во всех типах формул, присваиваний и вычислений.

Пример

Вместо использования переменной для хранения возвращаемого значения функции:

let x = toCelsius(77);
let text = "The temperature is " + x + " Celsius";

Вы можете использовать функцию напрямую, как значение переменной:

let text = "The temperature is " + toCelsius(77) + " Celsius";

Вы узнаете намного больше о функциях позже в этом руководстве.


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

Переменные, объявленные в функции JavaScript, становятся ЛОКАЛЬНЫМИ для этой функции.

Доступ к локальным переменным возможен только внутри функции.

Пример

// code here can NOT use carName

function myFunction() {
  let carName = "Volvo";
  // code here CAN use carName
}

// code here can NOT use carName

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

Локальные переменные создаются при запуске функции и удаляются по завершении функции.


Проверьте себя с помощью упражнений

Упражнение:

Выполнить функцию с именем myFunction.

function myFunction() {
  alert("Hello World!");
}
;