函数提升与函数参数

1.作用域

1.1 局部作用域

函数提升与函数参数_第1张图片
函数提升与函数参数_第2张图片

1.2 全局作用域

函数提升与函数参数_第3张图片

1.3 作用域链

函数提升与函数参数_第4张图片

1.4 垃圾回收机制

函数提升与函数参数_第5张图片

1.4.1 垃圾回收机制算法说明

函数提升与函数参数_第6张图片
函数提升与函数参数_第7张图片
函数提升与函数参数_第8张图片
函数提升与函数参数_第9张图片
函数提升与函数参数_第10张图片

1.5 闭包

函数提升与函数参数_第11张图片
函数提升与函数参数_第12张图片
函数提升与函数参数_第13张图片
总结:
函数提升与函数参数_第14张图片

1.6 变量提升

函数提升与函数参数_第15张图片
注意:var只提升变量声明,不会提升赋值

2. 函数进阶

2.1 函数提升

函数提升与函数参数_第16张图片

    // 会把所有函数声明提升到当前作用域的最前面
    // 只提升函数声明,不提示函数调用
    fn()
    function fn() {
      console.log('你爹');
    }

2.2 函数参数

函数提升与函数参数_第17张图片

2.2.1 动态参数

函数提升与函数参数_第18张图片
注意:伪数组arguments无法使用push,pop方法

2.2.2 剩余参数

函数提升与函数参数_第19张图片
函数提升与函数参数_第20张图片

2.2.3 展开运算符

函数提升与函数参数_第21张图片
函数提升与函数参数_第22张图片展开运算符与剩余参数的区别
函数提升与函数参数_第23张图片

你可能感兴趣的:(Javascript,java,前端,javascript)