对象(属于复杂数据类型)
对象里起名字要符合规则,
不符合需要添加引号括起来。
实例
<script>
//字面量的方式创建一个对象
var obj = {
姓名:"wwh",
年龄:100,
住址:"邢台"
}
console.log(obj);
//内置构造函数
var obj2 = new Object()
console.log(obj2);
obj2.name = "xiaoming"
obj2.nianling = 18
console.log(obj2);
</script>
增删改查(2种)
<script>
//增
var boj = {}
console.log(boj);
boj.name = "wwh"
boj.age = 100
boj.location = "xingtai"
console.log(boj);
// 查
document.write("姓名"+boj.name)
//改
boj.age = 18
console.log(boj);
// 删
delete boj.name
console.log(boj);
// 2-增 [中括号要添加引号单引双引都可以]
// ([]中括号是用来访问数组的)
var boj2 = {}
boj2["name"] = "tiechui"
console.log(boj2);
//查
console.log(boj2["name"]);
//改
boj2["name"] = "新的名字"
console.log(boj2);
//删
delete boj2["name"]
console.log(boj2);
//区别 对象下起名不规范的
var myobj = {
"a+b":"111111"
}
// console.log(myobj.a+b);
console.log(myobj["a+b"]);
</script>
遍历(用for来写)
<script>
var obj = {
name:"wwh",
age:100,
location:"xingtai",
a:1,
b:2
}
for(var i in obj){
//i 随意定义 表示的key
// console.log(i);
// console.log(obj[i]);
document.write(i+":"+obj[i])
document.write("<br>")
}
</script>
不同类型的存储
复杂函数的栈与堆关系
普通数据类型会放在栈里面,复杂类型定义的名字(相当的与钥匙)在这里
复杂类型的数据和方法、函数内容都存到了堆里面
//比如复杂类型复制一份了话
/*var obj = {
name:"wwh",
age:18
} 为房间 */
var lzh = obj 配了一把新的钥匙
lzh.name = "lzh"
console.log(lzh,obj);
只是相当于给一间房间配了2把钥匙而已。
修改哪个数据,房间都会改变
复制对象(把堆的内容复制一份)
<script>
//复制复杂函数
var ww = {
name:"wwh",
age:18
} //在堆里面的对象内容
var ll = {}
for(var i in ww){
ll[i]=ww[i] /用遍历来循环复制一份
}
ll.name = "tiechui" //修改ll的name名字
console.log(ww,ll); //打印ww 不变,ll成功复制并改名。
</script>