Blogger Information
Blog 77
fans 0
comment 2
visits 55690
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
JS 对象基本用法
南瓜又个梦
Original
680 people have browsed it

1.声明对象的两种语法
(1)定义
 无序的数据集合
 键值对的集合
(2)写法
let obj = { ‘name’: ‘frank’, ‘age’: 18 }
let obj = new Object({‘name’: ‘frank’})
console.log({ ‘name’: ‘frank, ‘age’: 18 })
(2)细节
键名是字符串,不是标识符,可以包含任意字符
引号可省略,省略之后就只能写标识符

就算引号省略了,键名也还是字符串(重要)

2.如何删除对象的属性
(1)delete obj.xxx 或 delete obj[‘xxx’]
即可删除 obj 的 xxx 属性
请区分「属性值为 undefined」和「不含属性名」
不含属性名
(2)’xxx’ in obj === false
含有属性名,但是值为 undefined
(3)’xxx’ in obj && obj.xxx === undefined
注意 obj.xxx === undefined
不能断定 ‘xxx’ 是否为 obj 的属性

3.如何查看对象的属性
(1)查看自身所有属性
Object.keys(obj)
(2)查看自身+共有属性
console.dir(obj)
或者自己依次用 Object.keys 打印出 obj.proto
(3)判断一个属性是自身的还是共有的
obj.hasOwnProperty(‘toString’)
(4)两种方法查看属性
  -   中括号语法:obj[‘key’]
  -   点语法:obj.key

4.如何修改或增加对象的属性
(1)直接赋值
~~~
let obj = {name: ‘frank’} // name 是字符串
obj.name = ‘frank’ // name 是字符串
obj[‘name’] = ‘frank’
obj[name] = ‘frank’ // 错,因 name 值不确定
obj[‘na’+’me’] = ‘frank’
let key = ‘name’; obj[key] = ‘frank’
let key = ‘name’; obj.key = ‘frank’ // 错
因为 obj.key 等价于 obj[‘key’]
~~~
(2)批量赋值
Object.assign(obj, {age: 18, gender: ‘man’})

5.’name’ in obj和obj.hasOwnProperty(‘name’) 的区别

hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中(非继承属性)是否具有指定的属性,
如果 object 具有带指定名称的属性,则 hasOwnProperty 方法返回 true,否则返回 false。此方法不会检查对象原型链中的属性;该属性必须是对象本身的一个成员。
配合Object.create可以很明显的看出来,in会检查隐藏属性,hasOwnProperty不会

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post