对象数据类型 object
var obj = {name:"lilei",age: 18}
每一个对象都是由零到多组属性名(key键):属性值(value值)
组成的,或者说由多组键值对组成的,每一组键值对中间用逗号分隔属性: 描述这个对象特点特征的
对象的属性名是字符串或者数字格式的,存储的属性值可以是任何数据类型
操作属性
获取属性
对象名.属性名 // 忽略了属性名的单双引号
对象名['属性名']
var obj = {name:"lilei",age:18,0:100}
// -> 获取某个属性名对应的属性值
obj.name // -> "lilei"
obj['name'] // -> "lilei"
// -> 如果属性名是数字怎么操作
obj.0 // -> 语法不支持
obj[0] 或 obj['0'] // -> 两种都支持 -> 100
// -> 如果操作的属性名在对象中不存在,获取的结果是 undefined
obj.sex // -> undefined
增加/修改
一个对象的属性名是不能重复的(唯一性)
如果之前存在就是修改属性值的操作
如果不存在就是新设置(增加)属性的操作
var obj = {name:"lilei",age:18}
// -> 增加/修改 ->
obj.sex = "man"; // 增加了属性名sex,并赋值为man
obj['age'] = 19; // 修改了属性名age,并赋了新值19
删除属性
假删除: 让其属性值赋值为null,但是属性还在对象中
obj.sex = null;
真删除: 把整个属性在整个对象中暴力移除
delete obj.sex;
思考题: obj[age]和obj['age']有什么区别?
网友评论
‘age’:常量,字符串的具体值。
var age = 'name';
var obj ={
name='zhufeng',
age:8
};
console.log(obj.age); //=> 8
console.log(obj['age']);// =>8
console.log(obj[age]); //=>obj[age变量] =>obj['name'] =>获取name属性名的属性值 =>"zhufeng"
obj[age]操作的是对象中的属性,并不是操作的变量,所以是操作的变量所存储的值,也就相当于obj[‘name’],而obj[‘age’]就是操作的是obj对象中age属性,所以值就是age本身。