JavaScript ES6箭头函数使用指南

yizhihongxing

JavaScript ES6箭头函数使用指南

什么是箭头函数?

箭头函数是ES6引入的一种新的函数定义方式, 它可以更简洁地定义函数,同时还有一些语法上的变化。箭头函数的语法如下:

(param1, param2, …, paramN) => { statements }

箭头函数的优点

1. 更简洁的代码

箭头函数是一种更简洁的函数定义方式,可以省略function关键字,同时也可以省略return关键字(当函数只有一行的时候)。

// ES5写法
function sum(a, b) {
  return a + b
}

// 箭头函数写法
const sum = (a, b) => a + b

2. 指向定义时所在的作用域

箭头函数和普通函数的一个重要的区别是箭头函数没有自己的this,箭头函数的this是定义时所在的作用域中的this。

const obj = {
  name: '小明',
  getName() {
    console.log(this.name)
  },
  getNameArrow: () => {
    console.log(this.name)
  },
}

obj.getName() // 输出:小明
obj.getNameArrow() // 输出:undefined

上面的代码中,getName方法是一个普通函数,getNameArrow是一个箭头函数。当调用getName函数时,函数内部的this指向obj对象。而当调用getNameArrow函数时,函数内部的this指向的是定义getNameArrow函数时所处的作用域,也就是全局作用域。因此,getNameArrow函数内部的name属性为undefined。

3. 不会被重写

箭头函数不会被Function.prototype.bind、Function.prototype.call、Function.prototype.apply等方法修改函数内部的this值。箭头函数的this值始终指向定义函数时所在的作用域中的this值。

箭头函数的示例

1. 箭头函数的基本用法

// 普通函数写法
function greeting(name) {
  return 'Hello, ' + name
}

// 箭头函数写法
const greeting = name => 'Hello, ' + name

console.log(greeting('张三')) // 输出:Hello, 张三

2. 箭头函数的this

const obj = {
  name: '小明',
  getName() {
    return () => console.log(this.name)
  },
}

const getName = obj.getName()

getName() // 输出:小明

上面的代码中,getName方法返回的是一个箭头函数。因为箭头函数的this值始终指向定义函数时所在的作用域中的this值,getName方法返回的箭头函数的this值就指向了obj对象。因此,调用getName函数时输出的值为小明。

总结

箭头函数是一个更简洁的函数定义方式,它和普通函数相比具有更简洁的代码、和定义时所在的作用域相同的this值、不会被重写等优点。在开发中,尤其是在处理事件或使用高阶函数时,箭头函数可以让代码更加清晰易懂。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript ES6箭头函数使用指南 - Python技术站

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

相关文章

  • 如何在TypeScript中处理日期字符串

    当我们在TypeScript中处理日期字符串时,需要使用到JavaScript内置的Date对象和相关操作方法。下面给出了常用的几种操作方法。 1. 将日期字符串转为Date对象 可以通过以下方法将一个符合日期格式的字符串转为Date对象: const dateString = ‘2021-05-20’; const date = new Date(date…

    JavaScript 2023年6月1日
    00
  • js仿360开机效果

    以下是详细的“js仿360开机效果”攻略。 简介 360开机效果是指当我们打开360安全卫士等产品时,会出现一个渐进式加载的进度条动画效果。这个效果也可以用JavaScript来实现,本攻略将介绍如何使用JavaScript实现。 实现思路 实现这个效果的核心思路是: 使用CSS实现加载进度条; 在进度条加载期间,每个等待的时间间隔内,增加对进度条的长度的微…

    JavaScript 2023年6月11日
    00
  • window.setInterval()方法的定义和用法及offsetLeft与style.left的区别

    一、window.setInterval()方法的定义和用法 window.setInterval()方法是JavaScript中的一个计时器函数,用于周期性地重复执行指定代码,间隔时间由用户自定义。它的语法如下: window.setInterval(func, delay, arg1, arg2, …) 参数说明: func:周期性执行的代码块,可以…

    JavaScript 2023年6月11日
    00
  • JavaScript函数内部属性和函数方法实例详解

    JavaScript函数内部属性和函数方法实例详解 在JavaScript中,每个函数都是一个对象,都有一些内部属性(internal properties)以及一些方法(method)。 函数对象的内部属性 [[Call]]属性 每个函数对象都有一个 [[Call]] 属性,也就是函数的调用方法。当我们像这样调用函数时: myFunction(); 实际上…

    JavaScript 2023年5月27日
    00
  • Javascript Math PI 属性

    JavaScript中的Math.PI属性是一个常数,表示圆周率π的值。以下是关于Math.PI属性的完整攻略,含两个示例。 Math对象的PI属性 JavaScript对象中的PI属性是一个常数,表示圆周率π的值。 下面是PI属性语法: Math.PI 下面是一个PI属性的示例: console.log(Math.PI); // 输出 3.14159265…

    JavaScript 2023年5月11日
    00
  • 详解JavaScript实现简单的词法分析器示例

    下面是详解“详解JavaScript实现简单的词法分析器示例”的完整攻略: 一、词法分析器概述 词法分析器是编译器中最简单的部分之一,它的主要功能是将代码分解为有意义的词法单元,例如关键字、标识符、常量、操作符等。在构建词法分析器时,我们可以使用许多工具和技术,例如正则表达式、自动机、递归下降解析器等。 二、实现一个简单的词法分析器 下面我们将介绍如何使用J…

    JavaScript 2023年5月28日
    00
  • javascript 流畅动画实现原理

    JavaScript 实现流畅动画的原理是通过不断地更新元素的位置或样式来实现视觉上的连续性,使元素看起来像是在不断地移动或变化。 常见的实现流畅动画的方式是通过 setInterval 或 requestAnimationFrame 不断地调用函数,来更新元素的位置或样式。在函数中,可以通过改变元素的 CSS 属性,来实现实时更新元素的效果。 其中,使用 …

    JavaScript 2023年6月10日
    00
  • 手淘flexible.js框架使用和源代码讲解小结

    手淘flexible.js框架使用和源代码讲解小结 什么是flexible.js flexible.js是淘宝移动端自适应布局的解决方案之一。它主要实现的功能是:根据不同的屏幕宽度动态设置标签的字体大小,从而实现移动端页面的自适应布局。 使用方法 使用flexible.js,只需要在页面头部引入flexible.js即可。 <script src=&q…

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