对象
-
对象是一个复杂数据类型
-
是一个储存了一些基本数据类型的一个集合
var obj = { num:100, str:'hello world', boo: true } -
这里的{}和函数中的{}不一样
-
函数里面的是写代码的,而对象里面是写一些数据的
-
对象就是一个键值对的集合
-
{ }里面的每一个键都是一个成员
-
也就是说,我们可以把一些数据放在一个对象里面,那么他们就互不干扰了
-
其实就是我们准备一个房子,把我们想要的数据放进去,然后把房子的地址给到变量名,当我们需要一个数据的时候,就可以根据变量名里面存储的地址找到对应的房子,然后再去房子里找对应的数据。
创建对象
-
字面量的方式创建一个对象
//创建一个空对象 var obj={} //像对象中添加成员 obj.name='jack' obj.age='16' -
内置构造函数的方式创建对象
//创建一个空对象 var obj = new Object() //向对象中添加成员 obj.name='Rose' obj.age=20* Object 是 js内置给我们的构造函数,用于船舰一个对象使用的
对象的基本操作
-
var obj = {} //点语法obj.键值:点语法会将后边的字符当成字符串来使用,而不是变量 //增 obj.name ='zhao' //改 obj.name ='赵' //查 document.write("姓名:"obj.name) //删除 delete obj.name //delete是js中的一个关键字,delete obj.name,就是把name这个键值给删除了 //第二种方式 var obj1={} //增 obj1["name"]="zhao" //查 document.write("姓名:"obj1["name"]) //改 obj1["name"]="xiaohzao" //删 delete obj1["name"] //区别 //键值需要加上”“不然就被认为是变量 //第一种的特殊字符不规则命名的键值需要加上”“
对象的遍历
//创建一个对象
var obj1={
name: 'zhao',
age:000,
xingbei:'男'
}
for(var i in obj1){
console.log(obj1[i])
}
数据类型之存储的区别
- 既然我们区分了基本数据类型和复杂函数类型
- 那么他们之间就一定存在一些区别
- 他们最大的区别就是在存储上的区别
- 我们存储空间分成两种 栈 和堆
- 栈:主要存储基本数据类型的内容
- 堆:主要存储复杂数据类型的内容
基本数据类型内在内存中的存储情况
- var num = 100,在内存中的存储情况
- 直接在 栈空间 内有存储一个数据
复杂数据类型在内存中的存储情况
-
下面这个对象的存储
var obj ={ name:'jack', age =18, gender:'男' } -
复杂数据类型的存储
- 在堆里面开辟一个存储空间
- 把数据存储到存储空间内
- 把存储空间的地址赋值给栈里面的变量
-
这就是数据类型之间的存储区别
-
更改对象内的键值
//创建一个对象 var obj={ name: 'zhao', age:000, xingbei:'男' } //创建一个空对象 var obj2 ={} for(var i in obj){ obj2[i] = obj[i] } //打印输出 console.log(obj,obj2) //更改obj2的name键值 obj2["name"]="xiaozhao" console.log(obj,obj2)