箭头函数是一种声明函数的简洁语法,它与普通函数并无本质的区别,差异性更多体现在语法格式上。

    1. <script>
    2. // 箭头函数
    3. let foo = () => {
    4. console.log('^_^ 长相奇怪的函数...');
    5. }
    6. // 调用函数
    7. foo();
    8. // 更简洁的语法
    9. let form = document.querySelector('form');
    10. form.addEventListener('click', ev => ev.preventDefault());
    11. </script>

    箭头函数的简化写法:

    1. // 1. 如果箭头函数的形参有1个,可以省略 ()
    2. // let fn = x => {
    3. // console.log(x * x)
    4. // }
    5. // fn(7)
    6. // 2. 如果箭头函数的函数体,只有一行代码,则可以省略大括号。并且表示 return 这个函数体
    7. // let fn = (x) => {
    8. // return x * x
    9. // }
    10. // console.log(fn(8))
    11. let fn = x => x * x // 默认,就表示 return x * x
    12. console.log(fn(6))
    13. // 如果函数需要返回一个 {} 空对象,则不能向下面那样
    14. let fn = () => {} // 这样写的话,{}相当于是函数的大括号
    15. let fn = () => ({}) // 这样写的话,相当于返回了 {} 空对象

    总结:

    1. 箭头函数属于表达式函数,因此不存在函数提升,只能先定义,然后再使用
    2. 箭头函数只有一个参数时可以省略圆括号 ()
    3. 箭头函数函数体只有一行代码时可以省略花括号 {},并自动做为返回值被返回
    4. 箭头函数中没有 arguments,只能使用 ... 动态获取实参
    5. 涉及到this的使用,不建议用箭头函数
    6. 箭头函数,一般都是当做回调函数使用。
    7. 如果函数需要返回对象 {} ,则需要在 {}外面加一层 ()