ES6 箭头函数
在es6版本出来之前,我们声明函数的方式都是利用function关键字来声明,显然,这种方式在有些时候显得有些麻烦,ECMAScript6
推出了箭头函数。
首先来一段代码
let test = function () {
console.log('1111');//1111
}
let test1 = () => {
console.log('1111');//1111
}
test()
test1()
这两种代码的方式都是等价的!第二种方式就是我们所称的箭头函数!
下面我们来看看箭头函数
的几个细节
- 只有
一个形参
时候括号可以省略
let test = (a) => {
console.log(a);
}
let test1 = a => {
console.log(a)
}
test(1)
test1(1)
- 只有
一句代码
或者只有返回值
的时候,可以省略{}
let test = a => console.log(a);
let test1 = a => {
console.log(a)
}
test(1)
test1(1)
- 箭头函数没有
arguments
arguments就是当函数没有形参的时候,传入实参所接受的地方!
let test = function () {
console.log(arguments);//arguments[3]
}
let test1 = () => {
console.log(arguments)//报错
}
test(1, 2, 3)
test1(1, 2, 3)
- 箭头函数没有this |
this指向父级作用域的
<input type="text" id="mytext">
mytext.oninput = function () {
// var that = this
setTimeout(() => {
console.log(this.value)//input
}, 1000)
}
mytext.oninput = function () {
// var that = this
setTimeout(function () {
console.log(this)//window
}, 1000)
}
- 函数的默认参数
let test = (a = 1, b = 2) => a + b
console.log(test());//3