JS高级程序设计笔记(二):变量、作用域和内存
2016-09-14 15:10
495 查看
参数
JS中的参数传值都是按值来传递,无论是基本类型还是引用类型的变量。如果是基本类型的参数,则值会复制一份给命名参数/arguments对象。
如果是引用类型的值则会把该值在内存中的地址复制一份给参数/arguments对象,此时该局部变量(函数的参数实际上是一个局部变量)的变化会反应在函数外部,因为操作的是同一个对象。
变量类型检测
使用typeof操作符可以检测出基本类型,除了
null会返回
object。
此外,检测方法会返回
function,除此以外的引用类型都是返回
object。
基本类型的数据其大小是固定的,保存在粘中;引用类型的数据保存在堆中。
作用域
所有的变量都存在于一个执行环境(作用域)中。每当进入一个新的执行环境,都会创建一个作用域链。作用域链保存了变量对象(保存了可访问的属性和方法)的引用,保证了标识符的有序搜索。全局变量在使用完毕后最好进行引用解除,即
obj = null。以便垃圾收集器在下次运行的时候回收内存。
访问一个未声明的变量会报错:ReferenceError: num is not defined。而访问对象不存在的属性返回的是
undefined。
通常对必填参数使用命名参数形式,而对可选参数使用对象字面量来封装。
相关文章推荐
- 《js高级程序设计》学习笔记--4.变量、作用域和内存问题
- JavaScript高级程序设计之变量、作用域和内存问题之执行环境及作用域第4.2讲敏敏笔记
- JavaScript高级程序设计笔记-变量、作用域和内存问题
- JavaScript高级程序设计学习笔记--变量、作用域和内存问题
- Javascript高级程序设计第二版第四章--变量,作用域及内存问题--笔记
- Javascript高级程序设计第二版第四章--变量,作用域及内存问题--笔记
- Javascript高级程序设计第二版第四章--变量,作用域及内存问题--笔记
- javascript高级程序设计笔记(第4章 变量、作用域和内存问题)
- JavaScript高级程序设计学习笔记--变量、作用域和内存问题(一) (变量、作用域)
- js高级程序设计(四)变量、作用域和内存问题
- JS高级程序设计第三版——变量、作用域和内存问题
- javascript高级程序设计笔记-第四章(变量、作用域)
- 《高级程序设计》 4 变量、作用域和内存问题
- javascript高级程序设计第四章:变量、作用域和内存问题读书笔记
- javascript高级程序设计(变量、作用域和内存问题)
- js高程第四章 变量、作用域和内存问题------学习笔记
- JavaScript高级程序设计2--变量、作用域和内存问题
- js笔记四:变量、作用域和内存问题
- JavaScript高级程序设计——第4章:变量、作用域和内存问题
- javascript高级程序设计第三版 第四章 变量、作用域和内存问题