JavaScript中的箭头函数以及编写优化

箭头函数

1.1.1 箭头函数的概念

箭头函数时ES 6之后增加一种编写函数的方法,并且它比函数的表达式要更加简洁

  • 箭头函数不会绑定this,arguments属性
  • 箭头函数不能作为构造函数来使用(不能和new一起来使用,会出现错误)
js 复制代码
  //1.之前的方式
  function foo1() {
    var foo2 = function() {}
  }
  
  //2.箭头函数的完整写法
  //把function去掉,然后加个=>
  var foo3 = (name,age)=> {
    console.log("箭头函数的函数体")
    console.log(name,age)
  }

1.1.2 箭头函数的编写优化

  1. 优化一:如果只有一个参数()可以省略
js 复制代码
  //1.优化一:如果箭头函数只有一个参数,那么()可以省略
  var names = ["abc","cba","nba"]
  names.forEach(item=>[
    console.log(item)
  ])
  1. 优化二:如果函数执行体只有一行代码,那么可以省略大括号

并且这行代码的返回值会作为整个函数的返回值

  1. 优化三:只有一行代码时,这行代码的表达式结果会作为函数的返回值默认返回的
js 复制代码
// //一行代码中不能带有return关键字,如果省略,需要带return一起省略(下一条规则)
names.forEach(item =>console.log(item))
var newNums =nums.filter(item=>{
  return item % 2 ===0
 })
  1. 优化四:如果默认返回值是一个对象,那么这个对象必须加()
js 复制代码
 var arrFn = ()=>({name:"why"})//可能会被当成执行体,要加小括号
 console.log(arrFn())

综合案例

js 复制代码
//箭头函数实现nums所有偶数平方的和
var nums = [20,30,11,15,111]
var result = nums.filter(item=>item % 2 === 0)
                  .map(item => item*item)
                  .reduce((prevValue,item)=>prevValue+item)
                  console.log(result)
相关推荐
Chrischaan1 小时前
做 AI 塔罗小程序时,我为什么不让大模型自己抽牌:一次上线复盘
前端
骑着蜗牛撵大象3271 小时前
LangChain 工具调用从声明到闭环:给智能体接上真实的手脚
前端
数据掘金1 小时前
百度统计后台页面数据异常?从手动调用时机开始排查
前端
hunteritself1 小时前
10 层 4K 实时剪辑,国产工作站进入广电制作核心
大数据·前端·人工智能·深度学习·transformer
踩着两条虫1 小时前
我在浏览器里“盖”了一个村:Vue + Three.js 大屏开发踩坑记
前端·vue.js·three.js
默_笙2 小时前
🧀 让大模型的答案"流"出来:NestJS AI 模块 + SSE + RxJS 实战
javascript·人工智能
mbshqqb2 小时前
TypeScript基础教程之同步生成器
前端·javascript·typescript
嘟嘟同学和妮妮同学2 小时前
【升级】一个中国历史可视化站:皇帝时间线梳理、古代思想流派、诗词鉴赏 (2)
前端·html
暗夜行者之光2 小时前
LangGraph + MCP 实战:构建"自然语言查数据"的 ChatBI Agent
前端·后端
一tiao咸鱼2 小时前
还在手动海投?我做了个 AI 求职助手,自动筛选 BOSS 职位再精准投递
前端·后端·面试