📜  箭头函数语法与函数表达式语法 (1)

📅  最后修改于: 2023-12-03 15:41:10.216000             🧑  作者: Mango

箭头函数语法与函数表达式语法

在 JavaScript 中,函数可以用 Function Declaration 或 Function Expression 的形式来定义。而在 ES6 中,新增了箭头函数(Arrow Function)语法,可以让函数定义更加简洁和易读。本文将介绍箭头函数语法与函数表达式语法的基本用法以及它们之间的区别。

箭头函数语法

箭头函数使用箭头(=>)来定义,通常使用现代 JavaScript 应用程序中。箭头函数可以有一个或多个参数,可以有一个或多个表达式语句,也可以用花括号包裹一个多条语句的函数体。

下面是箭头函数的示例:

// 无参箭头函数示例
const sayHello = () => console.log("Hello!");

// 一个参数箭头函数示例
const double = number => number * 2;

// 多个参数箭头函数示例
const greet = (name, age) => console.log(`Hi, ${name}. You are ${age} years old.`);

// 有花括号的箭头函数示例
const multiply = (num1, num2) => {
  const result = num1 * num2;
  return result;
};
函数表达式语法

函数表达式是利用表达式定义函数,在 ES6 之前被广泛使用。函数表达式也可以有一个或多个参数,可以有一个或多个表达式语句,也可以用花括号包裹一个多条语句的函数体。

下面是函数表达式的示例:

// 无参函数表达式示例
const sayHello = function() {
  console.log("Hello!");
};

// 一个参数函数表达式示例
const double = function(number) {
  return number * 2;
};

// 多个参数函数表达式示例
const greet = function(name, age) {
  console.log(`Hi, ${name}. You are ${age} years old.`);
};

// 有花括号的函数表达式示例
const multiply = function(num1, num2) {
  const result = num1 * num2;
  return result;
};
箭头函数语法与函数表达式语法的区别

箭头函数语法和函数表达式语法原则上可以互换使用,但是两者之间存在区别。

  1. 箭头函数是匿名函数,不可以作为构造函数使用;而函数表达式既可以是匿名函数,也可以是具名函数,可以用于创建新的对象实例。

  2. 箭头函数的 this 指向是词法作用域中的 this,而函数表达式的 this 指向是函数调用时的对象,可以通过 bindcallapply 等方法改变 this 的指向。

  3. 箭头函数的参数处理灵活,可以省略小括号和大括号,当只有一个参数时还可以省略小括号;而函数表达式必须使用小括号将参数括起来。

总之,箭头函数语法提供了更加简洁和易读的函数定义方式,但是在处理 this 指向和对象实例化等方面需要注意和谨慎使用。