您的位置:首页 > Web前端 > JavaScript

JS高级程序设计笔记(二):变量、作用域和内存

2016-09-14 15:10 495 查看

参数

JS中的参数传值都是按值来传递,无论是基本类型还是引用类型的变量。

如果是基本类型的参数,则值会复制一份给命名参数/arguments对象。

如果是引用类型的值则会把该值在内存中的地址复制一份给参数/arguments对象,此时该局部变量(函数的参数实际上是一个局部变量)的变化会反应在函数外部,因为操作的是同一个对象。

变量类型检测

使用
typeof
操作符可以检测出基本类型,除了
null
会返回
object


此外,检测方法会返回
function
,除此以外的引用类型都是返回
object


基本类型的数据其大小是固定的,保存在粘中;引用类型的数据保存在堆中。

作用域

所有的变量都存在于一个执行环境(作用域)中。每当进入一个新的执行环境,都会创建一个作用域链。作用域链保存了变量对象(保存了可访问的属性和方法)的引用,保证了标识符的有序搜索。

全局变量在使用完毕后最好进行引用解除,即
obj = null
。以便垃圾收集器在下次运行的时候回收内存。

访问一个未声明的变量会报错:ReferenceError: num is not defined。而访问对象不存在的属性返回的是
undefined


通常对必填参数使用命名参数形式,而对可选参数使用对象字面量来封装。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 作用域
相关文章推荐