对象的定义
- 无序的数据集合
- 键值对的集合
声明对象的两种语法
let obj = {'name':'fank','age':18} //第一种
let obj = new Object({'name':'fank','age':18}) //第二种
//第一种是第二种的简写版本
//对象的内容用键值对的方式排列{属性名:属性值}
//键名是字符串不是标识符,可以包含任何字符
//引号可以省略,省略之后只能写标识符
//就算引号省略了,键名也还是字符串
如何删除对象的属性
let obj = {'name':'fank'}
delete obj.name //第一种方式
delete obj['name'] //第二种方式
//即可删除obj name属性
如何查看对象的属性
查看对象的所有属性
let obj = {'name':'fank','age':18}
Object.keys(obj) //可以查看自身所有属性
查看对象自身的共有属性
console.dri(obj) //第一种
Object.keys(obj).__proto__ //第二种根据私有属性来查找
判断一个属性是自身的还是共有的
obj.hasOwnProperty()
//方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)
const object1 = {};
object1.property1 = 42;
//用法
console.log(object1.hasOwnProperty('property1'));
两种方法查看属性
obj['key'] //中括号法
obj.key //点语法
//坑新人语法obj[key],变量key值一般不为'key'
修改或增加属性
let obj = {name:'frank'} //name是字符串
obj.name = 'frank' //name是字符串
obj[name] = 'frank' //可以用这两种方式修改
'name' in obj和obj.hasOwnProperty('name') 的区别
'name' in obj可以判断obj对象不含xxx属性
obj.hasOwnProperty('name')用来判断一个属性是obj自身的还是共有的