笔记7

58 阅读2分钟

关于JavaScript中变量、作用域、作用域与闭包相关知识点总结

JavaScript 变量

变量是用于存储信息的"容器"。

与代数一样,JavaScript 变量可用于存放值和表达式。

变量可以使用短名称,也可以使用描述性更好的名称。

变量必须以字母开头

变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)

变量名称对大小写敏感(y 和 Y 是不同的变量)

注意:JavaScript 语句和 JavaScript 变量都对大小写敏感。

JavaScript 作用域

作用域是可访问变量的集合。

JavaScript 作用域在 JavaScript 中, 对象和函数同样也是变量。

在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。

JavaScript 函数作用域: 作用域在函数内修改。

JavaScript 局部作用域(或者叫函数作用域)

变量在函数内声明,变量为局部变量,具有局部作用域。

局部变量:只能在函数内部访问。

因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。

局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁。

js仅有两个作用域,函数中定义的变量仅能在本函数中使用,除此之外,其他变量皆是全局可用

注意:所有未定义直接赋值的变量自动声明为拥有全局作用域,并且该变量会挂载为window对象的属性

立即执行函数

语法:( function(){ 代码...} )() 

作用:立即执行当前函数 

JavaScript闭包

JavaScript 变量可以是局部变量或全局变量。

私有变量可以用到闭包。

优点:当我们需要对一个变量进行私有化控制的时候,可以使用闭包函数。同时在函数内部可以对局部变量进行最值控制等操作。 

缺点:使用闭包函数,也就引申出了一个内存泄漏的问题,由于js内存回收机制是标记清除法,就是一个数据在有引用的情况下,不会被释放,因为闭包内的数据在外部有使用,所以不会被释放,只能通过手动赋值null来释放。