object:
基本含义:对象由很多的属性和属性值组成(也叫key:value的结构),key也叫对象的键。也叫键值对,键值对之间用,(逗号 分割)
基本语法:
var 对象 = {
属性/键(key):“属性值”/键值,
属性/键(key):“属性值”/键值,
}
1.创建对象
<script>
var per = {
name: "李四",
age: 30,
addr: "xxxx号 ",
}
console.log(per);
</script>
2.读取对象
1) 对象 . 属性 读取指定的值
<script>
var per = {
name: "李四",
age: 30,
addr: "xxxx号 ",
}
console.log(per.name); //对象.属性 读取对象中的指定属性值
</script>
2)对象[ ] 读取指定的值 ,[ ]里面可以是字符串或者变量
<script>
var per = {
name: "李四",
age: 30,
addr: "xxxx号 ",
}
console.log(per["name"]); //对象[“属性”] 里面是字符串
var key = "age";
console.log(per[key]); //[]里面可以是变量
</script>
3.修改对象的值
<script>
var per = {
name: "李四",
age: 30,
addr: "xxxx号 ",
}
//用.修改per里面的name和age值
per.name = "张三";
per.age = 20;
//用[]修改per里面的addr []里面是字符串
per["addr"] = "12345号";
console.log(per);
</script>
4.删除对象的值
<script>
var per = {
name: "李四",
age: 30,
addr: "xxxx号 ",
}
// 删除per中的name 和age
delete per.name;
delete per["age"];
console.log(per);
</script>
5.对象的属性值可以是任意数据类型,所以对象数据可以嵌套对象数据等
<script>
var animal = {
name: "nana",
age: 2,
peo: { //对象中嵌套对象
name: "张三",
age: 30,
}
}
console.log(animal);
</script>
6.with语句可以操作对象的多个属性
优缺点:便捷,但是性能没有只用用.属性修改好,存在一定的安全隐患(实际项目中少用)
<script>
var animal = {
name: "nana",
age: 2,
peo: {
name: "张三",
age: 30,
}
}
//修改animal属性中peo属性的name属性值
with (animal) {
peo.name = 'li'
}
console.log(animal);
</script>
7. “key” in object 可以查看对象是否存在某个属性
存在返回true 不存在返回false
<script>
var animal = {
name: "nana",
age: 2,
peo: {
name: "张三",
age: 30,
addr: " xxxx号",
}
}
with (animal) {
peo.name = 'li'
}
// 注意
console.log("addr" in animal.peo); //返回true
</script>
8.遍历对象的属性 for ..... in
基本语法:for (var 属性 in 对象) 可以遍历对象的所有属性
<script>
var animal = {
name: "nana",
age: 2,
peo: {
name: "张三",
age: 30,
addr: " xxxx号",
}
}
//在堆内存里面开辟新的内存地址存放对象
var cat = {};//创建一个新的cat对象
// b为属性
for (var b in animal) { //遍历animal中的属性 拷贝到b
cat[b] = animal[b] //把animal中的属性和属性值赋值给cat
}
console.log(cat); //输出cat对象
//没有创建新对象,就需要输出属性和属性值
console.log(b, animal[b]);
</script>