JavaScript 中共有七种数据类型,分别是字符串(
String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、符号(Symbol)和对象(Object)。
前六种称为原始类型或简单类型,对象(Object)被称为复杂类型。
JavaScript 对象是拥有属性和方法的数据,它可以是无序的数据集合,也可以是键值对的集合。
1. 声明对象的两种语法
let obj{'name': 'qwxying', 'age': 18}
let obj = new Object({'name': 'qwxying', 'age': 18})
- 其中,
'name'和'age'称为键名,键名是字符串,不是标识符,它可以是任何字符;- 键名的引号可以省略,但是引号省略之后只能写成标识符或者数字;
即使键名的引号被省略了,键名依然是字符串。
2. 如何删除对象的属性
delete obj.xxx
//或者
delete obj['xxx']
即可删除obj对象的xxx属性。
注意:obj.xxx中的xxx为不必加引号的字符串。
3. 如何查看对象的属性
1. 查看自身属性
Object.keys(obj)
2. 查看自身属性和共有属性
console.dir(obj)
3. 判断一个属性是自身的还是共有的
obj.hasOwnProperty('xxx')
//true: 'xxx'为自身属性
//false: 'xxx'为共有属性或者无'xxx'属性
4. 'name' in obj和obj.hasOwnProperty('name')的区别
'name' in obj //可以访问到共有属性
obj.hasOwnProperty('name') //不能访问到共有属性
特别注意:
每个对象都有原型,对象的属性
obj.__proto__中存着所有对象的原型的地址,该原型也是一个对象,也称为对象的根,对象的根的原型为null。
4. 如何修改或增加对象的属性
1. 直接赋值
let obj = {name: 'qwxying'} //name是字符串
obj.name = 'qwxying' //name是字符串
obj['name'] = 'qwxying'
let key = 'name'; obj[key] = 'qwxying'
2. 批量赋值
Object.assign(obj, {
age:18,
gender: 'male',
xxx: 'yyy'
})