English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript基础教程

JavaScript 对象

JavaScript 函数

JS HTML DOM

JS 浏览器BOM

AJAX 基础教程

JavaScript 参考手册

Определение функции JavaScript

函数允许您定义一个代码块,给它命名,然后根据需要反复执行。

可以使用function关键字定义函数,也可以使用()运算符执行函数。

函数声明

在本教程的前面,您了解了使用以下语法声明函数:

function nameOfFunction(parameters) {
  // 要执行的语句
}

声明的函数不会立即执行。声明的函数只是对函数命名,并指定函数被调用时的操作。

function greet() {
   document.write("Hello, World!");
}
Проверьте, что‹/›

在上面的示例中,我们已经声明(定义)了一个名为greet的函数,该函数输出一条消息“ Hello,World!”。可以使用()运算符调用此功能,例如greet()。

函数表达式

JavaScript允许我们将函数分配给变量,然后将该变量用作函数。它称为函数表达式.

//函数表达式可以存储在变量中
var sum = function(a, b) {
return a + b;
};
// 该变量可用作函数
var x = sum(100, 8);
Проверьте, что‹/›

上面的函数实际上是一个匿名函数(没有名称的函数)。

存储在变量中的函数不需要函数名。始终使用变量名来调用它们。

上面的函数以分号结尾,因为它是可执行语句的一部分。

函数提升

在本教程的前面,您了解了JavaScript提升.

提升是JavaScript将声明移到当前作用域顶部的默认行为。

因此,可以在声明JavaScript函数之前对其进行调用:

// 声明前调用函数
greet();
function greet() {
  document.getElementById("output").innerHTML = "Hello World";
}
Проверьте, что‹/›

使用表达式定义的函数不会被提升。

自执行匿名函数

可以使函数表达式“自执行”。

自执行是一种JavaScript函数,它在定义后立即运行。

自动调用(启动)自执行表达式,而不需要调用它。也称为IIFE(立即调用的函数表达式)。

如果函数表达式后跟(),则函数表达式将自动执行。

(function () {
  // 要执行的语句
})();
Проверьте, что‹/›

将IIFE分配给变量将存储函数的返回值,而不是函数定义本身:

let result = (function () {
let name = "Seagull"; 
return name; 
})(); 
//立即创建输出
result; // "Seagull"
Проверьте, что‹/›

下面的示例演示如何将参数传递给IIFE(立即调用的函数表达式):

(function (x, y) {
  document.getElementById("output").innerHTML = x + y;
})(5, 10);
Проверьте, что‹/›

回调函数

回调函数是作为参数传递给另一个函数的函数,然后在外部函数中调用它来完成某种例程或操作。

function greet(name) {
  alert("Hello " + name);
}
function processInput(callback) {
  let name = prompt("Please enter your name:");
  callback(name);
}
// Passing greet function into processInput function as an argument
processInput(greet);
Проверьте, что‹/›

上面的示例是一个同步回调,因为它将会立即执行。

但是,回调通常用于在异步操作完成后继续执行代码。

递归

递归是一种迭代操作的技术,方法是使函数重复调用自身直到获得结果。

下面的示例使用递归获取数字的阶乘:

var factorial = function(number) {
  if (number <= 0) {
 return 1;
  }
 return (number * factorial(number - 1));
  }
};
document.getElementById("output").innerHTML = factorial(5);
Проверьте, что‹/›

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

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

но с ECMAScript 6 появилась обновленная, более краткая методика определения функции, называемойФункция-стрелкавыражениефункция.

Известно, чтоФункция-стрелкаИспользуйте знак равенства и знак больше, чтобы показать: =>.

// Функция выражения
var sum = function(x, y) {
   return x + y;
}
// Функция-стрелка
const sum = (x, y) => x + y;
Проверьте, что‹/›

Функции-стрелки не имеют своего own this. Они не подходят для определенияМетоды объекта.

Функции-стрелки не поднимаются. Их необходимо определить,Затем используйте их сноваОни.

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

return можно опустить только в том случае, если функция является единственной инструкцией. Поэтому всегда лучше их использовать.

return можно опустить только в том случае, если функция является единственной инструкцией. Поэтому всегда лучше их использовать.

const sum = (x, y) => { return x + y };
Проверьте, что‹/›