- JS的七种数据类型
- JS对象是什么?
- 声明对象的两种语法
- 如何将变量作为属性名
- 如何删除对象的属性
- 如何查看对象的属性
- 如何修改或增加对象的属性
- 'name' in obj和obj.hasOwnProperty('name') 的区别
一、JS的七种数据类型
number--数字string--字符串boolean--布尔synbol--符号null--空undefined--空object--对象 总结:四基两空一对象
二、JS对象是什么?
在 JavaScript 中,对象是拥有属性和方法的数据,是无序的数据集合,是键值对的集合。
三、声明对象的两种语法
let obj = {'name': 'yuezhuo', 'age':24}let obj = new Object({'name': 'yuezhuo', 'age': 24})[最正确的写法] *'name'是属性名(键名);'yuezhuo'是属性值(键值);
细节:
- 键名是字符串,不是标识符,可以包含任意字符;
- 引号可以省略,但最好不要省略以防出错;
- 就算是引号省略了,键名也还是字符串;
object.keys(obj)可以的得到obj的所有Key;
四、如何将变量作为属性名
方法:给属性名加个[]
let p1='name'
let obj1={p1:'yuezhuo'} //属性名为p1
加[]后
let p1='name'
let obj1={[p1]:'yuezhuo'} //属性名为name
细节:
- 不加[]的属性名会自动变成字符串;
- 加了[]的属性名会当作变量求值;
- 值如果不是字符串,则会自动变成字符串;
五、如何删除对象的属性
delete obj.xxxdelete obj['xxx']
六、如何查看对象的属性
-
查看自身所有属性:
Object.keys(obj) -
查看自身+共有属性:
console.dir(obj)**[推荐]**或者用Object.keys打印出obj.__ proto__ -
如何判断一个属性是自身的还是共有的:
obj.hasOwnProperty('XXX')
七、如何修改或增加对象的属性
修改属性
- 直接赋值:
obj['name']='卓越'
- 批量赋值:
Object.assign(obj,{'age':24,...})
八、'name' in obj和obj.hasOwnProperty('name') 的区别
'name' in obj查看属性name是否在obj里。
obj.hasOwnProperty('name')用来检测obj是否含有特定的自身属性name。
这个方法会查找一个对象是否有某个属性,但是不会去查找它的原型链。