目录
JavaScript作用域
作用域概述
通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性减少了名字冲突。
作用域一般分两种,第一种全局,第二种局部,全局作用域就是在script里写的,或者是外部引入的js文件里写的,局部作用域也叫函数作用域,是写在函数里面的,这个和C语言的意思是一样的,不过有一点和C语言不同,在es6之前,JS里面没有块级作用域的概念
变量的作用域
全局变量和局部变量和C语言的意思一样,但是在JS里有一种特殊情况,在函数中直接赋值,但是没有声明过的变量,也会被算成全局变量(这个做法不太推荐),函数的形参也是局部变量
全局变量关闭浏览器后才会销毁,会一直占着内存
局部变量在程序执行完毕后就会销毁,不会一直占着内存
作用域链
只要是代码,就至少有一个作用域写在函数内部的局部作用