1.写法不同
箭头函数直接使用 => 来定义出函数,而普通函数需要用到 function 关键字。
2.this
箭头函数是没有自己的this的,它的this是从父级函数中继承的;而普通函数的 this 是根据上下文来决定的,简单说就是谁调用指向谁
3. arguments 对象
箭头函数也是没有 argumens 对象的,在箭头函数内打印arguments获取到的是它父级函数的参数,如果需要获取参数时需要使用剩余参数(...arg)的写法;普通函数是存在arguments对象的。
function testArguments(){
console.log('普通函数',arguments)
let a = (...args)=>{
console.log('箭头函数',arguments,args)
}
a(11,12,13)
}
testArguments('test',2,3,4)
4. 箭头函数全都是匿名函数;普通函数可以有匿名函数,也可以有具名函数
5. 箭头函数不能用于构造函数;普通函数可以用于构造函数,以此创建对象实例。