js 中包含两种不同数据类型的值
- 基本类型值
1. undefined
2. Null
3. Boolean
4. Number
5. String
- 引用类型值
引用类型的值是保存在内存中的 对象
下面说说我对的理解
一:
- 对于 基本类型值 复制操作时,
var num1 = 5
var num2 = num1
结果:
变量名 | 内存中 |
---|---|
num1 | 5 (内存中有自己的位置) |
num2 | 5 (内存中有自己的位置) |
- 对于 引用类型值 复制操作时,
var obj1 = { key: 'value'}
var obj2 = obj1
结果:
变量名 | 内存中 |
---|---|
obj1 | { key: 'value'} (内存中有自己的位置) |
obj2 | obj1 (内存中没有自己的位置,而是引用 obj1 的内存地址) |
二:
引用类型值 可以为其添加属性和方法 ,而 基本类型 则不可以
var person = {}
person.name = "Rabbit"
alert(person.name) // ''Rabbit''
var name = "Banana"
name.age = 24
alert(name.age) // undefined, 因为 基本类型 不能添加属性 age
三:
传递参数:
基本类型传递参数是复制一个值给参数
var addTen = function(num) {
return num+10
}
var a = 10
var r = addTen(r)
alert(a) // 10, a 还是 10,没有变化
引用类型传递参数是把它的地址传递给参数
var setName = function(obj) {
obj.name = 'pinkBao'
}
var person = {}
setName(person)
alert(person.name) // 'pinkBao', 因为引用类型传递参数是把它的地址传递给参数,所以 setName 函数操作的实际上是 person 这个对象
网友评论