js笔记ES6相关笔记

一、作用域和作用域链、变量提升、垃圾回收、闭包
1.局部作用域
1.1函数作用域
在函数内部声明的变量只能在函数内部被访问,外部无法直接访问
函数的参也是函数内部的局部变量
不同的函数内部声明的变量无法互相访问
函数执行完毕后,函数内部的变量实际被清空了
1.2块作用域
只要被{}包括的都是块级作用域for循环、function(){}、if判断等等
在块级作用域声明的变量除了使用var声明的变量都不可以在外部声明
let和const声明的都是块级作用域
2.全局作用域
全局可以访问的变量,逐渐减少使用全局作用域
3.作用域链
本质就是底层的变量查找机制
在函数被执行的时候会优先查找当前函数作用域中查找作用域中查找
当前作用域查找不到就会一次逐级查找上一级作用域直到全局作用域 就近原则冒泡机制
父级作用域是不可以访问子级作用域,当然使用var声明时会存在变量提升
4.垃圾回收
生命周期:内存分配、内存使用、内存回收
全局变量一般不会回收,关闭页面的时候回收
局部变量的值一般当函数执行完或者不用了,就会被自动回收掉
内存泄漏:分配的内存由于某种原因程序未释放或无法释放叫做内存泄漏
5.闭包
一个函数的内部函数可以访问到外部函数的作用域就是闭包,外部函数的作用域内的变量被
内部的函数使用(引用)着就是闭包 闭包=函数+变量
举例

你可能感兴趣的:(javascript,笔记,es6)