目录 1. 函数的定义和调用 1.1 函数定义的3种方式 1.2 函数调用方式(常见的6种) 1.2.1 普通函数的调用 1.2.2 对象中的函数调用 1.2.3 构造函数的调用 1.2.4 DOM元素绑定事件调用函数 1.2.5 定时器中调用函数 1.2.6 立即执行函数 2. 函数内部的this指向 2.1 this指向 2.1.1 普通函数 2.1.2 对象中的函数 2.1.3 构造函数 2.1.4 绑定事件函数 2.1.5 定时器函数 2.1.6 立即执行函数 2.2 改变函数内部this指向 2.2.1 call方法 2.2.2 apply方法 2.2.3 bind方法(用得最多的一个方法) 2.2.4 call、apply、bind总结 3. 严格模式 3.1 什么是严格模式 3.2 开启严格模式 3.2.1 为脚本开启严格模式 3.2.2 为函数开启严格模式 3.2.3 严格模式中的变化 3.3 函数变化 4. 高阶函数 4.1 接收函数作为参数 4.2 将函数作为返回值输出 5. 闭包 5.1 变量作用域 5.2 什么是闭包 5.3 闭包的作用 5.4 闭包案例 5.4.1 循环注册点击事件 5.4.2 循环中的setTimeout(定时器) 5.4.3 打车价格 6. 递归 6.1 什么是递归 6.2 利用递归求数学题 6.2.1 求1 * 2 * 3...* n 阶乘 6.2.2 求斐波那契数列 6.2.3 利用递归遍历数据 6.3 浅拷贝与深拷贝 6.3.1 浅拷贝 6.3.2 深拷贝 学习目标: 能够说出函数的多种定义和调用方式; 能够说出和改变函数内部this的指向; 能够说出严格模式的特点; 能够把函数作为参数和返回值传递; 能够说出闭包的作用; 能够说出递归的两个条件; 能够说出深拷贝和浅拷贝的区别。 1. 函数的定义和调用 1.1 函数定义的3种方式 函数声明方式 function 关键字(命名函数); function fn () { } 函数表达式(因为没有名字所以叫