ES6 箭头函数

news/2024/7/11 0:20:15 标签: es6, 前端, ecmascript

箭头函数

ES6 允许使用“箭头”(=>)定义函数。

=> 7 等价于 {return 7}

var f = v => 7;
// 等同于
var f = function (v) {
  return 7;
};
//console.log(f(2))   2

函数参数有多个的情况

如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。

var f = () =>5;
等价于
function f(){
return 5;
}
    console.log(f(77));//5


var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2) {
  return num1 + num2;
};

//console.log(sum(1,10))  11

返回多条语句

如果箭头函数的代码块部分多于一条语句,就要使用大括号将它们括起来,并且使用return语句返回。

一条语句:表达式javascript短语,语句是javascript整句或命令,javascript语句是分号结尾

 var fn=(num1,num2)=>num1=num1+num2;console.log(num1) //报错Uncaught ReferenceError: num1 is not defined

返回为对象

由于大括号被解释为代码块,所以如果箭头函数直接返回一个对象,必须在对象外面加上圆括号,否则会报错。

// let getTempItem = id => { id: id, name: "Temp" };//报错:Uncaught SyntaxError: Unexpected token ':' (at demo_obj.js:1:39)
//由于大括号被解释为代码块,所以如果箭头函数直接返回一个对象,必须在对象外面加上圆括号,否则会报错。

let getTempItem = id =>({ id: id, name: "Temp" });
//getTempItem(1)  输出 {id: 1, name: 'Temp'}
 

箭头函数有点;简化函数

[1,2,3].map(function (x) {
  return x * x;
});   //输出 [1, 4, 9]

//改写成箭头函数
[1,2,3].map(x=>x*x)  //输出[1, 4, 9]

function foo() {
    setTimeout(() => {
      console.log('id:', this.id);
    }, 100);
  }
  var id = 21;
  foo.call({ id: 42 }); //id: 42

this指向的固定化,并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数根本没有自己的this,导致内部的this就是外层代码块的this。正是因为它没有this,所以也就不能用作构造函数。


http://www.niftyadmin.cn/n/5250279.html

相关文章

CommandLineRunner和@PostConstruct区别与应用场景

CommandLineRunner和PostConstruct区别与应用场景 时机和触发方式: CommandLineRunner 接口的run方法在整个Spring Boot应用程序启动完成后执行。它是在应用程序启动的最后阶段触发的,这样你可以确保在Spring Boot应用程序完全启动并准备好接受请求之前…

Kotlin 中密封类、枚举类与密封接口的对比分析

在 Kotlin 编程语言中,密封类(Sealed Classes)、枚举类(Enum Classes)和密封接口(Sealed Interfaces)是处理一组固定类型的强大工具。它们在 Kotlin 中扮演着特殊的角色,特别是在创建…

基于Java篮球俱乐部管理系统

基于Java篮球俱乐部管理系统 功能需求 1、会员管理:系统需要能够记录和管理所有会员的个人信息,包括姓名、联系方式、会籍状态等。此外,系统还应支持新会员的注册、会员卡的发行以及会籍的续费等功能。 2、训练计划安排:管理员…

计算n的阶乘-递归与迭代之间的转换

n的阶乘是指从1连乘到n的结果,通常用符号n!表示。例如,3的阶乘表示为3!,计算过程如下: 3! 3 2 1 6 一般地,n的阶乘可以用递归或迭代的方式计算,公式为: n! n (n-1) (n-2) ... 2 1 …

解决 python flask启动以及端口映射后,在公网中无法访问 的问题

之所以不能从公网访问,往往是因为ip的问题,以往你可能用的是局域网ip,当然不行,访问时使用公网ip。首先启动代码改为: app.run(host0.0.0.0,port80)host是ip地址,port是端口号,什么端口号都行&…

STM32的几个深入功能

STM32的几个深入功能 目录 1、时钟源2、锁相环3、备份SRAM4、low power mode5、DMA Flash RAM6、复位类型7、CMSIS8、STM32F4学习方法9、中断10、8080 并行接口11、FSMC12、ADC13、IIC14、SPI15、48516、CAN17、MPU6050六轴传感器18、NRF24L01 2.4G无线模块19、FLASH20、外部SR…

文心一言API(高级版)使用

文心一言API高级版使用 一、百度文心一言API(高级版)二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例 三、 如何获取appKey和uid1、申请appKey:2、获取appKey和uid 四、重要说明 一、百度文心一言API(高级版) 基于百度文心一言语言大模型的智能文本对话AI机器…

CSPNet: A New Backbone that can Enhance Learning Capability of CNN(2019)

文章目录 -Abstract1 Introduction2 Related workformer work 3 Method3.1 Cross Stage Partial Network3.2 Exact Fusion Model 4 Experiments5 Conclusion 原文链接 源代码 - 梯度信息重用(有别于冗余的梯度信息)可以减少计算量和内存占用提高效率&am…