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. 展开和休息运算符 (...)

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

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

    Face Swap Online
    Face Swap Online

    在线免费换脸,支持图片换脸和视频换脸

    下载
     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

相关专题

更多
js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

553

2023.06.20

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

374

2023.07.04

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

731

2023.07.04

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

477

2023.09.01

JavaScript转义字符
JavaScript转义字符

JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

394

2023.09.04

js生成随机数的方法
js生成随机数的方法

js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

990

2023.09.04

如何启用JavaScript
如何启用JavaScript

JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

656

2023.09.12

Js中Symbol类详解
Js中Symbol类详解

javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

551

2023.09.20

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

61

2026.01.14

热门下载

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

精品课程

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

共21课时 | 2.7万人学习

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

共8课时 | 1.5万人学习

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

共0课时 | 0人学习

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

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