JavaScript中的函数申明、函数表达式、箭头函数

在 JavaScript 中,函数定义有三种方式:函数声明、函数表达式和箭头函数。

函数声明

函数声明是定义一个函数的常见方式,语法如下:

function add(x, y) {
  return x + y;
}

其中 add 是函数名,xy 是参数,return 关键字用于返回计算结果。

函数声明有一个重要的特点,就是函数可以在声明之前被调用(也就是函数声明提升)。例如:

console.log(add(2, 3)); // 5

function add(x, y) {
  return x + y;
}

函数表达式

函数表达式是另一种定义函数的方式,语法如下:

const add = function(x, y) {
  return x + y;
};

其中 add 是变量名,也就是函数的名称,function(x, y) 是函数体,可以指定零个或多个参数。

函数表达式有一个关键的区别就是不能在声明之前被调用。例如:

console.log(add(2, 3)); // error

const add = function(x, y) {
  return x + y;
};

箭头函数

箭头函数是 ES6 新加入的语法,语法如下:

const add = (x, y) => {
  return x + y;
};

其中 (x, y) 是参数列表,可以指定零个或多个参数,=> 是箭头符号,表示函数体开始,{} 表示函数体,可以包含零条或多条语句。

如果函数体只包含一条语句,可以省略 {},并且可以省略 return,例如:

const add = (x, y) => x + y;

箭头函数还有一个特点,就是函数的 this 指向是固定的,指向定义时的上下文。例如:

const person = {
  name: '张三',
  sayHi: function() {
    setTimeout(() => {
      console.log(`我是${this.name}`);
    }, 1000);
  }
};

person.sayHi(); // 1秒后输出 "我是张三"

在上面的代码中,箭头函数中的 this 指向的就是定义时的上下文 person,而不是 setTimeout 函数。这种特性使得箭头函数和 this 的使用更加方便。

示例说明

  1. 函数声明示例:
// 函数声明
console.log(add(2, 3)); // 5

function add(x, y) {
  return x + y;
}

在上面的代码中,我使用函数声明的方式定义了一个名为 add 的函数,然后在调用函数之前直接调用了 add(2, 3),结果是 5。这是因为函数声明具有声明提前的特性,可以在声明之前被调用。

  1. 箭头函数示例:
// 箭头函数
const person = {
  name: '张三',
  sayHi: function() {
    setTimeout(() => {
      console.log(`我是${this.name}`);
    }, 1000);
  }
};

person.sayHi(); // 1秒后输出 "我是张三"

在上面的代码中,我定义了一个名为 person 的对象,其中包含一个名为 sayHi 的方法。在这个方法中,我使用箭头函数定义了一个计时器,并且在计时器的回调函数中输出了当前对象的 name 属性。由于箭头函数中的 this 指向的是定义时的上下文 person,因此在调用方法时,输出的结果是定时器回调函数中的 this.name,也就是 "我是张三"

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript中的函数申明、函数表达式、箭头函数 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 详解Go-JWT-RESTful身份认证教程

    详解Go-JWT-RESTful身份认证教程 介绍 本文将详细介绍如何使用Go语言实现一套基于JWT(JSON Web Token)的RESTful身份认证系统。RESTful是一种基于HTTP协议、符合REST原则的接口设计风格,使用JWT进行身份认证和授权可以轻松实现API的状态无关性和安全性。 实现步骤 生成JWT Token 生成JWT Token是…

    JavaScript 2023年6月11日
    00
  • JS实现键值对遍历json数组功能示例

    下面我将为您详细讲解“JS实现键值对遍历json数组功能示例”的完整攻略。 一、前置知识 在进行键值对遍历json数组的操作前,需要您先了解以下基础知识: JSON数组:JSON是一种轻量级的数据交换格式,通常使用JSON格式来传输数据,JSON数组即是由多个JSON对象组成的数组。 for…in循环:用于遍历一个对象的所有可枚举属性,循环中可以获取到枚…

    JavaScript 2023年5月27日
    00
  • 解读Java和JavaScript区别与联系

    解读Java和JavaScript区别与联系 Java(简称Java语言)是由Sun Microsystems公司于1995年5月推出的高级编程语言,被广泛用于Web开发、移动应用开发、桌面应用开发、游戏开发等多个方向。 JavaScript(简称JS)是一种脚本语言,最初用于Web前端交互式设计,后来广泛应用于客户端/服务器端应用程序、游戏开发等领域。 区…

    JavaScript 2023年5月18日
    00
  • JS实现的3des+base64加密解密算法完整示例

    JS实现的3DES+Base64加密解密算法完整示例 简介 本文介绍了如何使用JavaScript实现一种加密算法——3DES+Base64,包含完整的示例代码。具体而言,我们将使用3DES算法对明文进行加密,并将加密后的结果使用Base64算法编码,以便于传输。同时,我们也将演示如何使用3DES算法进行解密,以还原出原始的明文。 算法介绍 3DES算法 3…

    JavaScript 2023年5月19日
    00
  • JavaScript监听一个DOM元素大小变化

    要监听一个DOM元素大小的变化,我们可以利用JavaScript提供的IntersectionObserver API来实现。IntersectionObserver设计的初衷是为了监听页面中一个元素是否进入了视窗,但它也可以用于监听元素的大小变化。 以下是监听DOM元素大小变化的详细攻略: 步骤一:创建一个IntersectionObserver实例 首先…

    JavaScript 2023年6月10日
    00
  • loading动画特效小结

    这里是“loading动画特效小结”的完整攻略: loading动画特效小结 1. 为什么需要loading动画 在网页加载的过程中,用户等待时间过长往往会让用户们感到烦躁,而且这个等待时间也是会让用户选择放弃等待,选择离开的!而为了避免这个情况产生,我们需要添加页面加载动画,以方便用户等待。 2. 实现loading动画的方法 实现loading动画有多种…

    JavaScript 2023年6月10日
    00
  • vscode调试container中的程序的方法步骤

    下面是详细的 VS Code 调试 Container 中的程序的方法步骤: 步骤一:准备工作 安装 Docker 和 VS Code; 安装 VS Code 的 Docker 插件 Docker Extension; 创建需要调试代码的 Docker 容器,可以使用 Dockerfile 或者 docker-compose。 步骤二:创建 launch.j…

    JavaScript 2023年6月11日
    00
  • 一篇文章教你用JavaScript使用流程控制打印九九乘法表

    一、背景介绍 九九乘法表是小学数学中比较基础的一个知识点,非常适合用来练习编程语言的流程控制。本文以JavaScript为例,介绍如何使用流程控制打印九九乘法表。 二、具体步骤 1. 确定九九乘法表的规模 在开始编写代码前,首先需要确定九九乘法表的规模,即要打印多少行和多少列。九九乘法表一般是9行9列,但也可以根据需要打印其他规模的乘法表。 2. 使用for…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部