ES6箭头函数(Arrow Functions)
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)相关推荐
- es6 箭头函数使用_如何使用ES6箭头功能使JavaScript易于阅读
es6 箭头函数使用 Arrow functions are the new fundamental building blocks of building modern web applicatio ...
- [OHIF-Viewers]医疗数字阅片-医学影像-ES6箭头函数(=)
[OHIF-Viewers]医疗数字阅片-医学影像-ES6箭头函数(=>) https://www.liaoxuefeng.com/wiki/1022910821149312/103154957 ...
- 10分钟理解ES6箭头函数
前言 面试中,ES6 是一大考点,当被问到箭头函数时,我们都会说:箭头函数很好用,而且再也不用操心 this 的指向了. 面试官:箭头函数是挺好用的,那有哪些不适合使用箭头函数的场景呢? 箭头函数在大 ...
- ES6箭头函数中的this指向
1箭头函数中的this (1)箭头函数中没有this : 这意味着 call() apply() bind() 无法修改箭头函数中的this (2)箭头函数中的this指向 :访问上一个作用域的thi ...
- es6 箭头函数 rest参数 扩展运算符
Es6 箭头函数 语法: 普通函数: fn=function(){} 箭头函数: fn=()=>{} 特性: this是静态的,this始终指向函数声明时所在作用域下的this的值(使用call ...
- es6箭头函数_【知识点】ES6箭头函数、箭头函数与普通函数的区别
作者:長安曹公子 文章出处:ES6 - 箭头函数.箭头函数与普通函数的区别 一.基本语法 ES6中允许使用箭头=>来定义箭头函数,具体语法,我们来看一个简单的例子: // 箭头函数 let fu ...
- ES6箭头函数以及promise/async/await测试案例
ES6箭头函数的运用 下面以一段代码解释 function one(){return 1 以上函数用箭头函数写步骤,参考下面代码 {}和里面的东西先删去 one = (里面写参数/无参数的里面为空)= ...
- 什么时候不该使用es6箭头函数 1
从开始接触es6到在项目中使用已经有一段时间了,es6有很多优秀的新特性,其中最有价值的特性之一就是箭头函数,他简洁的语法以及更好理解的this值都非常的吸引我.但是新事物也是有两面性的,箭头函数有他 ...
- Javascript/ES6箭头函数
Javascript/ES6箭头函数 文章目录 Javascript/ES6箭头函数 一.箭头函数是什么? 二.箭头函数与普通函数的区别 三.箭头函数的使用 1.箭头函数是匿名函数,不能作为构造函数, ...
最新文章
- 分享我的学习记录 svn地址
- Java 图形用户界面 AWT事件处理
- Spring CommonsMultipartResolver 上传文件
- django-元选项
- Springboot 整合 Dubbo/ZooKeeper你不知道的那点事,大神必修课
- 免密钥登录linux
- 2018-11-08
- Apache OpenNLP(二)
- 盘点前 10 名的免费跨浏览器测试工具
- Android-创建简单登陆界面
- Fluent 安装过程
- sqlserver数据库置疑处理
- 电脑自动出现html文件,当前页面发生脚本错误 电脑总出现当前页面脚本错误怎么办?...
- flutter自定义渐变背景按钮
- WTL 自绘控件库 (CQsComboBox)
- 论语 尧曰篇(笔记)
- 如何用wireshark来解析出PDCP-LTE格式,即把PDCP报文突出到wireshark
- python re.compile() 详解——Python正则表达式
- 斐波那契兔子问题(递归实现)
- “黑金”让我一见如故
热门文章
- 用python做双人五子棋_基于python的socket实现单机五子棋到双人对战
- webservice框架_聊聊从RPC到服务治理框架
- 服务器如何区分多个客户端的信息,如何从服务器向客户端发送已连接客户端的列表,以区分常规消息?...
- Maven projects need to be imported反复弹出如何办?
- 抖音微信之争的真相:地盘之争,还是用户隐私之争?
- 大学计算机专业全英文论文,计算机专业大学生英文简历模板
- 关于JWT的一些攻击方法
- 挖洞技巧:如何绕过URL限制
- Linux调试分析诊断利器----strace
- Jquery中AJAX参数详细介绍