对象
对象是JavaScript中核心的概念也是最重要的数据类型。
定义:对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。
- 无序的数据集合
- 键值对的集合
var obj = {
foo: 'Hello',
bar: 'World'
};
对象的每一个键名又称为“属性”,它的“键值”可以是任何数据类型。
属性的操作
属性的读取
读取对象的属性,有两种方法,一种是点运算法,一种是方括号运算符。
var obj = {
p: 'Hello World'
};
obj.p // "Hello World"
obj['p'] // "Hello World"
查看自身所有属性
Object.keys(obj)
查看自身+共有属性
onsole.dir(obj)
属性的修改和增加
直接赋值:
点运算符和方括号运算符,不仅可以用来读取值,还可以用来赋值。
var obj = {};
obj.name = 'y';
obj['age'] = '19';
批量赋值:
Object.assign(obj,{age:18,gender:'man'})
属性的删除
delete命令用于删除对象的属性,删除成功后返回true。
var obj = { p: 1 };
Object.keys(obj) // ["p"]
delete obj.p // true
obj.p // undefined
Object.keys(obj) // []
'name' in obj 和 obj.has OwnProperty('name')的区别
in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值),如果包含就返回true,否则返回false。'name' in obj只能检查obj对象里是否有name属性,不能区分是自身的还是共有的,obj.has OwnProperty('name')是可以判断一个属性是自身的还是共有的。