包含函数的基本操作、回调函数、IIFE、递归。

1. 为什么要使用函数?

使用函数进行编程的好处主要体现在两点:
1)代码复用:当某部分代码需要反复执行或在多个项目中使用时,可以通过封装函数来减少重复的代码量;
2)代码分工:当某一个程序需要多人协作开发,可以通过封装函数来进行功能的划分,从而达到分工合作的效果;

2. 创建函数的方式主要有哪几种,它们的区别是什么?

创建函数的方式主要分为声明式函数和函数表达式,其中声明式函数存在函数提升,而函数表达式没有。

3. 什么是函数提升?

跟变量提升一样,在浏览器编译代码的阶段,除了查找所有 var 声明的变量以外,还会查找所有声明式函数,并将他们提升到当前作用域头部,这个过程就是函数提升。

4. 函数参数的分类

函数的参数分为两种:实参和形参。

  • 实参:实际参数,在函数调用时传递的实际数据;
  • 形参:形式参数,在函数声明时用于接收实参的变量;

    5. ES6 中新增了哪些与函数有关的内容。

  • 函数参数的默认值;

  • 不定参数;
  • 箭头函数;

    6. 简述不定参数和 arguments 的作用,及其区别是什么?

    不定参数和 arguments 都是用于管理函数的实参。

  • 不定参数用于接收所有没有对应形参的实参,arguments 用于接收所有实参;

  • 不定参数是一个数组,arguments 是一个伪数组对象;

    7. 箭头函数在哪些情况下可以简写?

  • 当形参只有一个时,箭头函数的小括号 () 可以省略;

  • 当函数内部只有一句 return 语句时,可以省略大括号和 return 关键字;

    8. return 关键字在函数中有什么作用?

    1)设置函数的返回值;
    2)终止函数的执行;

    9. 什么是回调函数?

    回调函数,指的是一个被作为参数传递给另一个函数的函数。

    10. 什么是 IIFE ?

    IIFE:Immediately Invoked Function Expression,意为立即调用的函数表达式,也就是说,声明函数的同时立即调用这个函数。

    11. 什么是递归函数?

    递归函数,指的是在函数内部调用自身的函数。如果没有设置出口,则会导致无限递归。