共计 807 个字符,预计需要花费 3 分钟才能阅读完成。
object 是第七种数据类型,惟一一种简单类型
申明
最罕用的简略写法
let obj = {'name': 'frank', 'age': 18}
obj.name = 'frank' //name 是字符串
obj.['name'] = 'frank'
细节
- 键名是字符串,不是标识符,能够蕴含任意字符
- 引号可省略,省略之后就只能写标识符
- 就算引号省略了,键名也还是字符串
删除
删除 obj 的 xxx 属性
detele obj.xxx 或者 delete obj[‘xxx’]
判断不含属性名
‘xxx’ in obj === false(xxx 肯定要加单引号)
判断含有属性名,但属性值为 undefined
‘xxx’ in obj &&obj.xxx === undefined
查看
输出属性名查看属性值
obj[‘key’]
obj.key
这里的 name 是 字符串 ,等价于 obj[‘name’]
点语法会误导你,让你认为 key 不是字符串
obj[key]
这里的 key 是 变量,循环打印的时候会用到这种写法,因为能够一直的替换变量的值
js 会求[] 中表达式的值
查看本身所有属性名
Object.keys(obj)
查看本身 + 共有属性
console.dir(obj)
判断一个属性是本身的还有共有的
obj.hasOwnProperty(‘toString’)
后果 true 就阐明是本身的
key in obj 和 obj.hasOwnProperty(‘toString’)的区别
‘key’ in obj 不能判断出这个属性是本身属性还是共有属性
obj.hasOwnProperty(‘key’) 能够判断出这个属性是本身属性还是共有属性
浏览器控制台间接输出对象的名字: obj 再按回车
就会返回对象的所有属性名和属性值
批改
改本身:obj[‘name’] = ‘jack’
批量赋值:Object.assign(obj, {age: 18,gender: ‘man’})
不举荐批改原型
改原型:let obj = Object.create(common)