0

0

ESnd 箭头函数综合指南

碧海醫心

碧海醫心

发布时间:2024-10-06 17:18:10

|

828人浏览过

|

来源于dev.to

转载

esnd 箭头函数综合指南

es6简介

ecmascript 2015,也称为 es6 (ecmascript 6),是对 javascript 的重大更新,引入了新的语法和功能,使编码更高效、更易于管理。 javascript 是最流行的 web 开发编程语言之一,es6 的改进大大增强了其功能。

本指南将涵盖 es6 中引入的重要功能,特别关注箭头函数,这是一种强大的新函数编写方式。

es6 的主要特性

1. let 和 const

es6 引入了两种新的变量声明方式:let 和 const。

  • let:声明一个块作用域变量,这意味着该变量仅在声明它的块内可用。

     let x = 10;
     if (true) {
       let x = 2;
       console.log(x); // 2 (inside block)
     }
     console.log(x); // 10 (outside block)
    
  • const:声明一个不能重新赋值的常量变量。然而,这并不会使变量不可变——用 const 声明的对象仍然可以更改其属性。

     const y = 10;
     y = 5; // error: assignment to constant variable.
    
     const person = { name: "john", age: 30 };
     person.age = 31; // this is allowed.
    

2. 箭头函数

es6 最受关注的功能之一是箭头函数。它为编写函数提供了更短、更简洁的语法。

#### 语法比较:

传统函数 (es5):

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

箭头函数 (es6):

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

以下是箭头函数的不同之处:

  • 更短的语法:不需要写function关键字,如果函数只有一条语句,可以省略大括号{}。
  • 隐式返回:如果函数只包含一个表达式,则自动返回该表达式的结果。
  • 没有 this 绑定:箭头函数没有自己的 this,使得它们不适合对象方法。

单线箭头函数示例:

   const multiply = (a, b) => a * b;
   console.log(multiply(4, 5)); // 20

箭头函数也可以不带参数使用:

   const greet = () => "hello, world!";
   console.log(greet()); // "hello, world!"

对于多行函数,需要大括号{},并且返回语句必须明确:

   const sum = (a, b) => {
     let result = a + b;
     return result;
   };

箭头函数和这个
一个重要的区别是箭头函数中的行为方式。与传统函数不同,箭头函数不绑定自己的 this — 它们从周围的上下文继承 this。

   const person = {
     name: "john",
     sayname: function() {
       settimeout(() => {
         console.log(this.name);
       }, 1000);
     }
   };
   person.sayname(); // "john"

在上面的示例中,settimeout 中的箭头函数从 sayname 方法继承了 this,它正确引用了 person 对象。

3. 解构赋值

解构允许我们从数组或对象中提取值,并以更简洁的方式将它们分配给变量。

对象解构:

   const person = { name: "john", age: 30 };
   const { name, age } = person;
   console.log(name); // "john"
   console.log(age);  // 30

数组解构:

   const fruits = ["apple", "banana", "orange"];
   const [first, second] = fruits;
   console.log(first);  // "apple"
   console.log(second); // "banana"

4. 展开和休息运算符 (...)

... 运算符可用于将数组扩展为单个元素或将多个元素收集到一个数组中。

  • 扩展:将数组扩展为单个元素。

    Short AI
    Short AI

    AI短视频生成器,轻松创作爆款短视频!

    下载
     const numbers = [1, 2, 3];
     const newnumbers = [...numbers, 4, 5];
     console.log(newnumbers); // [1, 2, 3, 4, 5]
    
  • rest:将多个参数收集到一个数组中。

     function sum(...args) {
       return args.reduce((acc, curr) => acc + curr);
     }
     console.log(sum(1, 2, 3, 4)); // 10
    

5.承诺

promises 用于处理 javascript 中的异步操作。 promise 代表了一个可能现在、将来或永远不可用的值。

示例:

   const mypromise = new promise((resolve, reject) => {
     settimeout(() => {
       resolve("success!");
     }, 1000);
   });

   mypromise.then(result => {
     console.log(result); // "success!" after 1 second
   });

在此示例中,promise 在 1 秒后解析,然后 then() 方法处理解析后的值。

6. 默认参数

在es6中,你可以为函数参数设置默认值。当未提供或未定义参数时,这非常有用。

示例:

   function greet(name = "guest") {
     return `hello, ${name}!`;
   }
   console.log(greet());       // "hello, guest!"
   console.log(greet("john")); // "hello, john!"

7. 字符串方法(包括()、startswith()、endswith())

向字符串添加了新方法,使常见任务变得更容易:

  • includes():检查字符串是否包含指定值。

     let str = "hello world!";
     console.log(str.includes("world")); // true
    
  • startswith():检查字符串是否以指定值开头。

     console.log(str.startswith("hello")); // true
    
  • endswith():检查字符串是否以指定值结尾。

     console.log(str.endswith("!")); // true
    

8. 数组方法(find()、findindex()、from())

es6 引入了处理数组的新方法:

  • find():返回第一个满足条件的元素。

     const numbers = [5, 12, 8, 130, 44];
     const found = numbers.find(num => num > 10);
     console.log(found); // 12
    
  • findindex():返回第一个满足条件的元素的索引。

     const index = numbers.findindex(num => num > 10);
     console.log(index); // 1 (position of 12 in the array)
    

9. 课程

es6 向 javascript 引入了类,它们是 javascript 现有的基于原型的继承的语法糖。类允许更清晰、更易于理解的面向对象编程。

示例:

   class Car {
     constructor(brand, year) {
       this.brand = brand;
       this.year = year;
     }

     displayInfo() {
       return `${this.brand} from ${this.year}`;
     }
   }

   const myCar = new Car("Toyota", 2020);
   console.log(myCar.displayInfo()); // "Toyota from 2020"

结论

es6 改变了 javascript,使其更高效、更易于使用。 箭头函数的引入简化了函数语法,而解构承诺扩展运算符等新功能 允许开发人员编写更清晰、更具表现力的代码。无论您是初学者还是高级开发人员,了解这些 es6 功能对于编写现代 javascript 至关重要。

通过掌握这些概念,您将能够更好地应对现实世界的编码挑战并构建高效、可扩展的 web 应用程序。

跟进 github 上的 arrow functions 项目

参考

  • https://www.w3schools.com/js/js_es6.asp
  • https://towardsdatascience.com/javascript-es6-iterables-and-iterators-de18b54f4d4
  • https://developer.mozilla.org/en-us/docs/web/javascript/reference/functions/rest_parameters
  • https://developer.mozilla.org/en-us/docs/web/javascript/reference/functions/default_parameters
  • https://developer.mozilla.org/en-us/docs/web/javascript/reference/functions/arrow_functions
  • https://developer.mozilla.org/en-us/docs/web/javascript/reference/statements

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
es6新特性
es6新特性

es6新特性有:1、块级作用域变量;2、箭头函数;3、模板字符串;4、解构赋值;5、默认参数;6、 扩展运算符;7、 类和继承;8、Promise。本专题为大家提供es6新特性的相关的文章、下载、课程内容,供大家免费下载体验。

106

2023.07.17

es6新特性有哪些
es6新特性有哪些

es6的新特性有:1、块级作用域;2、箭头函数;3、解构赋值;4、默认参数;5、扩展运算符;6、模板字符串;7、类和模块;8、迭代器和生成器;9、Promise对象;10、模块化导入和导出等等。本专题为大家提供es6新特性的相关的文章、下载、课程内容,供大家免费下载体验。

197

2023.08.04

JavaScript ES6新特性
JavaScript ES6新特性

ES6是JavaScript的根本性升级,引入let/const实现块级作用域、箭头函数解决this绑定问题、解构赋值与模板字符串简化数据处理、对象简写与模块化提升代码可读性与组织性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

231

2025.12.24

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1561

2023.10.24

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1561

2023.10.24

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

241

2024.02.23

php三元运算符用法
php三元运算符用法

本专题整合了php三元运算符相关教程,阅读专题下面的文章了解更多详细内容。

128

2025.10.17

go语言 面向对象
go语言 面向对象

本专题整合了go语言面向对象相关内容,阅读专题下面的文章了解更多详细内容。

58

2025.09.05

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

4

2026.03.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 4万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.6万人学习

Git中文开发手册
Git中文开发手册

共0课时 | 94人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号