Обзор функций ECMAScript

Что такое функция?

Функция - это набор инструкций, которые могут выполняться в любое время и везде.

Функция является ядром ECMAScript.

Функция объявляется таким образом: ключевое слово function, имя функции, группа параметров и код, выполняемый в скобках.

Базовая грамматика функции такая:

function functionName(arg0, arg1, ... argN) {
  statements
}

Например:

function sayHi(sName, sMessage) {
  alert("Hello " + sName + sMessage);
}

Как вызвать функцию?

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

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

sayHi("David", " Nice to meet you!")

Вызов функции sayHi() создаст диалоговое окно с предупреждением. Вы можетеПопробуйте этот пример亲自.

Как функция возвращает значение?

Функция sayHi() не возвращает значение, и не нужно специально объявлять это (как это делается в Java с использованием void).

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

function sum(iNum1, iNum2) {
  return iNum1 + iNum2;
}

Следующий код assigns значение, возвращаемое функцией sum, к переменной:

var iResult = sum(1,1);
alert(iResult);	//вывод "2"

Еще одним важным概念ом является то, что, как и в Java, функция немедленно останавливает выполнение кода после выполнения оператора return. Поэтому код после оператора return не будет выполнен.

Например, в следующем коде окно alert не будет отображаться:

function sum(iNum1, iNum2) {
  return iNum1 + iNum2;
  alert(iNum1 + iNum2);
}

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

function diff(iNum1, iNum2) {
  if (iNum1 > iNum2) {
    return iNum1 - iNum2;
  }
    return iNum2 - iNum1;
  }
}

Указанная функция используется для возврата разницы между двумя числами. Для этого необходимо вычесть меньшее число из большего, поэтому используется оператор if для решения,哪个 оператор return будет выполнен.

Если функция не возвращает значение, то можно вызвать безparameterный оператор return, чтобы随时 выйти из функции.

Например:

function sayHi(sMessage) {
  if (sMessage == "bye") {
    return;
  }
  alert(sMessage);
}

В этом коде, если sMessage равно "bye", то предупреждение никогда не будет отображаться.

Комментарий:Если функция не имеет явно возвращаемого значения или была вызвана функция с безparameterным оператором return, то она действительно возвращает значение undefined.