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