概述:ES6允许使用箭头(=>)定义函数,箭头函数提供了一种更加简洁的函数书写方式,箭头函数多用于匿名函数的定义;

箭头函数的注意点

  • 如果形参只有一个,则小括号可以省略
  • 函数体如果只有一条语句,则花括号可以省略
  • 箭头函数的this指向声明时所在的作用域下的this值
  • 箭头函数不能作为构造函数实例化
  • 不能使用arguments

箭头函数的特性

  • 箭头函数的this是静态的,始终指向函数声明所在作用域下的this值
  • 不能作为构造实例化对象
  • 不能使用arguments变量

代码演示
传统写法

     var sayHi = function(){console.log("哈喽!小刘同学");}sayHi()// 运行结果:哈喽!小刘同学

ES6写法:无参数

   let speak = ()=>console.log("hello 哈哈!");speak()// 运行结果:hello 哈哈!

传统写法 一个参数

 var hello = function(name){return `哈喽!${name}`}console.log(hello("小刘同学"));// 运行结果:哈喽!小刘同学

ES6箭头函数: 一个参数

 let Hi = name => `hello${name}`console.log(Hi("小刘同学"));// 运行结果:hello小刘同学

传统写法:多个参数

     var sum = function(a,b,c){return a+b+c}console.log(sum(1,2,3));//运行结果:6

ES6写法 多个参数

     let add = (a,b,c)=>a + b + cconsole.log(add(6,7,8));// 运行结果:21

特性案例演示

箭头函数的this是静态的,始终指向函数声明时所在作用域下的this的值
  const school = {call:"哈喽!",name:"小刘同学"}// 传统函数function sayHiName(){console.log(this.call+this.name);}// 箭头函数let sayHiName1 = ()=>{ console.log(this.call+this.name);}window.name = "小张"// 直接调用sayHiName()// undefined小张sayHiName1()// undefined小张

使用call调用

     sayHiName.call(school)// 哈喽!小刘同学sayHiName1.call(school)// undefined小张// 总结:箭头函数的this是静态的,始终指向函数声明时所在作用域下的this的值
不能作为构造实例化对象
  let Person = (name,age) =>{this.name = namethis.age = age}let me = new Person("小张",24)console.log(me);//报错:t TypeError: Person is not a constructor
不能使用arguments 变量
  let fn = () =>console.log(argument);fn(1,2,3)// 报错 argument is not defined

ES6新特性之箭头函数相关推荐

  1. 实战 es6_Node.JS实战65:ES6新特性:箭头函数

    有人说ES6(ES2015)最具魅力的是箭头函数.但真的,我不这么认为:箭头函数这玩意真是又丑又变扭! 不过,箭头函数确实有它的功能优势: 1.简洁: (虽然我也不认为这是真的简洁,还是认为它是很变扭 ...

  2. ES6新特性_ES6箭头函数的实践以及应用场景---JavaScript_ECMAScript_ES6-ES11新特性工作笔记010

    然后我们再去看,这个箭头函数的一些应用 右边有块区域我们点击div以后实现2s以后,我们变成粉色 我们去实现 声明一个let ad得到这div对象 然后给这对象添加事件监听,可以看到这里,添加了一个c ...

  3. ES6新特性_ES6箭头函数以及声明特点---JavaScript_ECMAScript_ES6-ES11新特性工作笔记009

    然后我们看这个箭头函数,箭头函数用的很多,很常用. 可以看到以前我们声明函数用上面的方法 现在我们可以把这个function省略,然后加上=> 我们可以调用一下,可以看到没问题 然后我们再看看, ...

  4. ES6新特性3:函数的扩展

    本文摘自ECMAScript6入门,转载请注明出处. 一.函数参数默认值 1. ES6允许为函数的参数设置默认值,即直接写在参数定义的后面. function log(x, y = 'World') ...

  5. ES6新特性之Generator函数

    Generator函数 Generator 函数是 ES6 提供的 一种异步编程解决方案,语法行为与传统函数完全不同 . Generator函数有两个特征: 一是 function命令与函数名 之间有 ...

  6. ES6新特性_ES6生成器函数的参数传递---JavaScript_ECMAScript_ES6-ES11新特性工作笔记021

    然后我们再来看es6中生成器函数的参数传递. 首先看一个例子,没有参数的,可以看到右边执行结果. 然后看如果我给这个gen('AAA')调用的时候传一个值 可以看到右边没有反应,我们说生成器函数调用需 ...

  7. ES6新特性_ES6生成器函数实例_第二个实例---JavaScript_ECMAScript_ES6-ES11新特性工作笔记023

    然后我们再来看一个案例 这里我们说生成器函数是针对异步编程的解决方案,我们看看他是怎么解决的, 我们知道这个setTimeout是异步执行的,那么 我们这里现在有这样一个需求,我们先拿到某个用户数据, ...

  8. ES6新特性_ES6生成器函数实例---JavaScript_ECMAScript_ES6-ES11新特性工作笔记022

    生成器函数是针对异步编程的一个解决方案 我们知道ajax,是异步的,其实 文件操作,网络操作,数据库操作,都是异步的 我们这里做个例子就是1s后输出111,2s后输出222,3s后输出333,可以用上 ...

  9. ES6新特性_ES6生成器函数声明与调用---JavaScript_ECMAScript_ES6-ES11新特性工作笔记020

    然后我们再来看这个 生成器函数的声明调用 生成器函数就是在函数,前面加个*,表示这个是个生成器函数. 然后我们写个iterator=gen(); 调用一下这个函数,看看这个函数中有个next方法 所以 ...

最新文章

  1. 9、 Struts2验证(声明式验证、自定义验证器)
  2. 低速自动驾驶车辆的定位与建图
  3. 2021全国高校计算机能力挑战赛(初赛)C语言试题一
  4. servlet文件上传blob_servlet实现从oracle数据库的blob字段中读出文件并显示 | 学步园...
  5. 2压缩备份数据库_为什么您的企业需要备份数据库
  6. Fluid 架构创新论文被国际数据库顶会 ICDE 录用
  7. 那个在轮胎上考了99分的孩子拒绝再上网课
  8. 如何在Kali Linux中安装Google Chrome浏览器
  9. FlexPaper 2.2.1介绍与提取嵌入的文档
  10. C语言实现上三角蛇形矩阵不用数组,蛇形矩阵c语言实现
  11. js 时间戳转换成时间_JavaScript 时间戳转成日期格式
  12. 记录一些容易忘记的属性 -- UITabBarController
  13. 在WebStorm环境中给nodejs项目中添加packages
  14. 每天Leetcode 刷题 初级算法篇-汉明距离
  15. zebra(斑马)PDA扫码uniapp程序小demo
  16. 两人共用计算机,双人共享一台电脑主机 两个人同时使用一台电脑主机
  17. 痱子的预防和治疗方法
  18. AMD CPU搞编程能行吗
  19. An operation on a socket could not be performed because the system lacked sufficient buffer space or
  20. tensorflow入门教程(二十六)人脸识别(上)

热门文章

  1. LVM(逻辑卷管理)
  2. php服务器端自动打印,c# – 通过PHP启动服务器端打印作业
  3. sp工具中最疼的是_阴阳师:sp大岳丸人权卡再增强属性离谱,sp姑姑被削做陪衬...
  4. 【libdatachannel】streamer与js客户端本机联调3 client流程
  5. requireJs学习心得
  6. 焊锡条的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  7. 抖音怎么发完整版5分钟长视频 开通完整版权限教程
  8. P1344 [USACO4.4] 追查坏牛奶Pollutant Control
  9. C# .NETMVC 微信JSAPI支付
  10. vue阻止冒泡和阻止默认事件