ES6可以使用“箭头”(=>)定义函数,注意是函数,不要使用这种方式定义类(构造器)。

一、语法

1. 具有一个参数的简单函数

var single = a => a
single('hello, world') // 'hello, world'

  

2. 没有参数的需要用在箭头前加上小括号

var log = () => {alert('no param')
}

  

3. 多个参数需要用到小括号,参数间逗号间隔,例如两个数字相加

var add = (a, b) => a + b
add(3, 8) // 11

  

4. 函数体多条语句需要用到大括号

var add = (a, b) => {if (typeof a == 'number' && typeof b == 'number') {return a + b} else {return 0}
}

  

5. 返回对象时需要用小括号包起来,因为大括号被占用解释为代码块了

var getHash = arr => {// ...return ({name: 'Jack',age: 33})
}

  

6. 直接作为事件handler

document.addEventListener('click', ev => {console.log(ev)
})

  

7. 作为数组排序回调

var arr = [1, 9 , 2, 4, 3, 8].sort((a, b) => { if (a - b > 0 ) {return 1} else {return -1}
})
arr // [1, 2, 3, 4, 8, 9]

  

二、注意点

1. typeof运算符和普通的function一样

var func = a => a
console.log(typeof func); // "function"

  

2. instanceof也返回true,表明也是Function的实例

console.log(func instanceof Function); // true

  

3. this固定,不再善变

obj = {data: ['John Backus', 'John Hopcroft'],init: function() {document.onclick = ev => {alert(this.data) // ['John Backus', 'John Hopcroft']}// 非箭头函数// document.onclick = function(ev) {//     alert(this.data) // undefined// }}
}
obj.init()

这个很有用,再不用写me,self,_this了,或者bind。

4. 箭头函数不能用new

var Person = (name, age) => {this.name = namethis.age = age
}
var p = new Func('John', 33) // error

  

5. 不能使用argument

var func = () => {console.log(arguments)
}
func(55) //

  

对于5,在Firefox36里测试是可以输出55的,貌似并没有这个限制

相关:

http://kangax.github.io/compat-table/es6/

ES6箭头函数(Arrow Functions)相关推荐

  1. es6 箭头函数使用_如何使用ES6箭头功能使JavaScript易于阅读

    es6 箭头函数使用 Arrow functions are the new fundamental building blocks of building modern web applicatio ...

  2. [OHIF-Viewers]医疗数字阅片-医学影像-ES6箭头函数(=)

    [OHIF-Viewers]医疗数字阅片-医学影像-ES6箭头函数(=>) https://www.liaoxuefeng.com/wiki/1022910821149312/103154957 ...

  3. 10分钟理解ES6箭头函数

    前言 面试中,ES6 是一大考点,当被问到箭头函数时,我们都会说:箭头函数很好用,而且再也不用操心 this 的指向了. 面试官:箭头函数是挺好用的,那有哪些不适合使用箭头函数的场景呢? 箭头函数在大 ...

  4. ES6箭头函数中的this指向

    1箭头函数中的this (1)箭头函数中没有this : 这意味着 call() apply() bind() 无法修改箭头函数中的this (2)箭头函数中的this指向 :访问上一个作用域的thi ...

  5. es6 箭头函数 rest参数 扩展运算符

    Es6 箭头函数 语法: 普通函数: fn=function(){} 箭头函数: fn=()=>{} 特性: this是静态的,this始终指向函数声明时所在作用域下的this的值(使用call ...

  6. es6箭头函数_【知识点】ES6箭头函数、箭头函数与普通函数的区别

    作者:長安曹公子 文章出处:ES6 - 箭头函数.箭头函数与普通函数的区别 一.基本语法 ES6中允许使用箭头=>来定义箭头函数,具体语法,我们来看一个简单的例子: // 箭头函数 let fu ...

  7. ES6箭头函数以及promise/async/await测试案例

    ES6箭头函数的运用 下面以一段代码解释 function one(){return 1 以上函数用箭头函数写步骤,参考下面代码 {}和里面的东西先删去 one = (里面写参数/无参数的里面为空)= ...

  8. 什么时候不该使用es6箭头函数 1

    从开始接触es6到在项目中使用已经有一段时间了,es6有很多优秀的新特性,其中最有价值的特性之一就是箭头函数,他简洁的语法以及更好理解的this值都非常的吸引我.但是新事物也是有两面性的,箭头函数有他 ...

  9. Javascript/ES6箭头函数

    Javascript/ES6箭头函数 文章目录 Javascript/ES6箭头函数 一.箭头函数是什么? 二.箭头函数与普通函数的区别 三.箭头函数的使用 1.箭头函数是匿名函数,不能作为构造函数, ...

最新文章

  1. 分享我的学习记录 svn地址
  2. Java 图形用户界面 AWT事件处理
  3. Spring CommonsMultipartResolver 上传文件
  4. django-元选项
  5. Springboot 整合 Dubbo/ZooKeeper你不知道的那点事,大神必修课
  6. 免密钥登录linux
  7. 2018-11-08
  8. Apache OpenNLP(二)
  9. 盘点前 10 名的免费跨浏览器测试工具
  10. Android-创建简单登陆界面
  11. Fluent 安装过程
  12. sqlserver数据库置疑处理
  13. 电脑自动出现html文件,当前页面发生脚本错误 电脑总出现当前页面脚本错误怎么办?...
  14. flutter自定义渐变背景按钮
  15. WTL 自绘控件库 (CQsComboBox)
  16. 论语 尧曰篇(笔记)
  17. 如何用wireshark来解析出PDCP-LTE格式,即把PDCP报文突出到wireshark
  18. python re.compile() 详解——Python正则表达式
  19. 斐波那契兔子问题(递归实现)
  20. “黑金”让我一见如故

热门文章

  1. 用python做双人五子棋_基于python的socket实现单机五子棋到双人对战
  2. webservice框架_聊聊从RPC到服务治理框架
  3. 服务器如何区分多个客户端的信息,如何从服务器向客户端发送已连接客户端的列表,以区分常规消息?...
  4. Maven projects need to be imported反复弹出如何办?
  5. 抖音微信之争的真相:地盘之争,还是用户隐私之争?
  6. 大学计算机专业全英文论文,计算机专业大学生英文简历模板
  7. 关于JWT的一些攻击方法
  8. 挖洞技巧:如何绕过URL限制
  9. Linux调试分析诊断利器----strace
  10. Jquery中AJAX参数详细介绍