标签:
ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值。
基本类型值
|
引用类型值
|
简单的数据段
|
可能由多个值构成的对象
|
值源自5种基本数据类型: Undefined、Null、Boolean、Number 和 String |
值是保存在内存中的对象
|
在内存中占据固定大小的空间,保存在栈内存中 | 保存在堆内存中 |
按值访问
|
按引用访问
|
不能添加属性 |
能动态地添加和删除属性
|
复制变量值时,创建一个新值(副本) |
值的副本是一个指针,指向存储在堆中的一个对象
|
确定一个值是哪种基本类型:typeof 操作符 |
确定一个值是哪种引用类型:instanceof 操作符
|
(2)复制变量值
I.复制类型值的过程:
如果从一个变量向另一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上。
II.复制引用类型值的过程:
当从一个变量向另一个变量复制引用类型的值时,同样也会将存储在变量对象中的值复制一份放到为新变量分配的空间中。不同的是,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象。
(3)参数传递
ECMAScript 中所有函数的参数都是按值传递的。即,基本类型值的传递如同基本类型变量的复制一样,而引用类型值的传递,则如同引用类型变量的复制一样。
(4)检测类型
标签:
原文地址:http://www.cnblogs.com/Ruth92/p/5271342.html