【ES6】 箭头函数

简介: 【ES6】 箭头函数

数字化管理平台

Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus

权限系统-商城

个人博客地址

一、语法变化

() => {}

如果函数只有一个参数,可以省略 ()

如果函数体中只有一句话,{} 和 return 都可以省略(返回值为对象除外)

不绑定 this。箭头函数 this 的指向由外围最近一层非箭头函数决定。如下,在对象声明的时候, value 和 getvalue() 都是 foo的内部属性(方法),则他们的外围自然是全局了。

var value = "小明"
var foo = {
  value:"小红",
  getValue:() => console.log(this.value)
}
foo.getValue() // => 小明

示例:

// ES6之前的函数写法
function f(){
  // 函数体
}
function f1(arg){
  // 函数体
}
function f2(arg1,arg2){
  // 函数体
}
window.onload = function(){
  // 函数体
}
let f3 = function(){
  // 函数体
}
let arr = [10,20,30,40,50,60];
arr.sort(function(a,b){
  return a - b;
})
let f4 = function(arg){
  return Math.sqrt(arg);
}
console.log(f4(9))
// ES6箭头函数写法
() => {
  // 函数体
}
arg => {
  // 函数体
}
(arg1,arg2) => {
  // 函数体
}
window.onload = () => {
  // 函数体
}
let f3 = () => {
  // 函数体
}
let arr = [10,20,30,40,50,60];
arr.sort((a,b) => {
  return a - b;
})
// 或
let arr = [10,20,30,40,50,60];
arr.sort((a,b) => a - b)
let f4 = arg => Math.sqrt(arg);
console.log(f4(9))

二、函数参数

  • 不定参数:用来表示不确定参数个数。由 …(参数展开符) 加上一个具名参数标识符组成。具名参数只能放在参数的最后,并且有且只有一个不定参数。
// 收集参数
let f = (a,b,...args) => {
  console.log("a:",a,",b:",b,",args:",args);
}
f(10,20,30,40,50,60,70);// => a: 10 ,b: 20 ,args: (5) [30, 40, 50, 60, 70]
// 展开数组
let arr = ["apple","banana","pear","kiwi fruit"];
console.log(...arr); // => apple banana pear kiwi fruit
//或
let f = (a,b,c,d) => {
  console.log(a,b,c,d); // => apple banana pear kiwi fruit
}
f(...arr);
let arr1 = [10,20,30],
  arr2 = [40,50,60],
  arr3 = [...arr1,...arr2];
console.log(arr3);// => (6) [10, 20, 30, 40, 50, 60]
// 收集 -》 展开
let fn = (a, b) => console.log(a + b);
let f = (...args) => fn(...args); //前面参数...args是收集参数,后面...args是展开传递
f(10, 20); // => 30

默认参数:函数声明时,给形参定义默认值;在函数调用时,如果传递了参数,则使用传递的参数值,否则使用默认值

let f = (a, b = 10, c = 20) => {
    console.log(a, b, c);
}
f(); //undefined 10 20
f(100); //100 10 20
f(100, 200); //100 200 20
f(100, 200, 300); //100 200 300
f(100, 200, 300, 400); //100 200 300

image.png

ES6 箭头函数相关知识

相关文章
|
机器学习/深度学习 人工智能 算法
【Python 机器学习专栏】强化学习在游戏 AI 中的实践
【4月更文挑战第30天】强化学习在游戏AI中展现巨大潜力,通过与环境交互和奖励信号学习最优策略。适应性强,能自主探索,挖掘出惊人策略。应用包括策略、动作和竞速游戏,如AlphaGo。Python是实现强化学习的常用工具。尽管面临训练时间长和环境复杂性等挑战,但未来强化学习将与其他技术融合,推动游戏AI发展,创造更智能的游戏体验。
799 0
|
云安全 安全 网络安全
云计算与网络安全:技术融合下的风险与对策
【10月更文挑战第5天】在数字化时代的浪潮中,云计算以其强大的数据处理和存储能力成为企业数字化转型的重要推手。然而,随之而来的网络安全问题也日益凸显。本文将从云计算服务的基本概念出发,深入探讨网络安全的重要性,并通过信息安全的关键技术,揭示云计算环境下的安全风险及应对策略。我们将通过具体案例分析,展现如何在享受云服务带来的便捷的同时,保障数据的安全性和完整性。文章旨在为读者提供一套实用的云计算安全指南,以期在快速发展的云计算时代中,为企业和个人打造一道坚固的安全防线。
336 1
|
自然语言处理 监控 测试技术
FunAudioLLM模型的技术测评
本文旨在对通义语音团队开源的FunAudioLLM模型,特别是SenseVoice和CosyVoice这两个模型进行技术测评,探讨其性能、功能和技术创新等方面的表现,并提出潜在的改进建议。
|
存储 算法 Java
广度优先搜索(Breadth-First Search,BFS)是一种用于图的遍历或搜索的算法。
广度优先搜索(Breadth-First Search,BFS)是一种用于图的遍历或搜索的算法。
|
安全 网络安全 数据安全/隐私保护
|
编解码 Java 流计算
38款 流媒体服务器开源软件
http://www.oschina.net/project/tag/111/streaming?lang=0&os=0&sort=view&p=1 Flash流媒体服务器 Red5 Red5是一个采用Java开发开源的Flash流媒体服务器。
9313 0
|
存储 缓存 固态存储
408计算机组成原理学习笔记——存储系统(一)
408计算机组成原理学习笔记——存储系统
1772 2
408计算机组成原理学习笔记——存储系统(一)
|
消息中间件 Java 应用服务中间件
java常用的框架有哪些
【1月更文挑战第13天】java常用的框架有哪些
589 7
|
移动开发 API
阿里云域名优惠口令及优惠口令获取方法_2024更新
阿里云域名优惠口令及优惠口令获取方法_2024更新,com域名续费优惠口令“com批量注册更享优惠”,cn域名续费优惠口令“cn注册多个价格更优”,cn域名注册优惠口令“互联网上的中国标识”,阿里云优惠口令是域名专属的优惠码,可用于域名注册、续费和转入使用,域名优惠口令区分域名后缀,阿里云百科分享2024年阿里云域名优惠口令更新(注册、转入、续费均可使用)
1231 0
阿里云域名优惠口令及优惠口令获取方法_2024更新

热门文章

最新文章