对象
- 复杂数据类型
- 无序的数据集合
- 键值对的集合
- 写法
let obj1 = {}
let obj2 = new Object({})
- 键名是字符串不是标识符,可以包含任意字符;引号可以省略,省略之后就只能写标识符;就算引号省略了,键名还是字符串字符串字符串!!!!!
- 用变量a的值作为属性名
let a = 'xxx'
var obj = {
[a]:1234
}
- 除了字符串,symbol也能做属性名
删除属性
let obj = {
'name':'小红'
}
delete obj.name
delete obj['name']
查属性
Object.keys(obj)
Object.values(obj)
Object.entries(obj)
console.dir(obj)
修改或增加属性
Object.assign(obj,{age:18})
obj.toString='xxx'
obj.__proto__.toString='xxx'
Object.prototype.toString='xxx'
var Object.create({
判断某一属性是否存在
'xxx' in obj
判断某一属性是否自身属性
obj.hasOwnProperty('xxx')
注意
obj.name等价于obj['name'],其中name是字符串,而不是变量
什么时候不加单引号?
let name = '小绿'
obj[name]等价于obj['小绿']