JavaScript 的对象类似于其他语言的哈希结构,是一种无序的 key => value 集合,用 {} 符号表示。
// 创建 | Object 的 key 必须是 “字符串” 或者 “数字” 这种 “不可变性质” 的类型,并且不能重复,value 可以是任意的
var person = {
name: 'Ada',
age: 19
}
// 取值
console.log(person.name) // 'Ada'
console.log(person['name']) // 同上
// 赋值
person.birth = 1896
// 删除
delete person.birth
'Ada' in {'Ada': 1} // true | 验证属性是否存在
Object.keys({a: 1, b: 2}) // [a, b] | 获取 key
Object.values({a: 1, b: 2}) // [1, 2] | 获取 value
Object.assign({a:1}, {b:2}) // {a:1, b:2} | 合并,重复的 key 会被覆盖
判断一个 {} 是否是空的。
{} === {} // false | 就像 NaN !== NaN 一样,两个 {} 也不相等
{}.length // 报错 | length 是获取一个 “序列” 的长度,对象并不是序列,所以没有 length 方法
// 需要先把 {} 转换成 [],才能验证是否为空
Object.keys({}).length // 0
由于 JavaScript 的 object 类型它既是一种哈希数据结构,又是我们面向对象编程传统意义上的 “对象”。为了不混淆概念,ES6标准新推出了一种哈希结构 Map 和 集合数结构 Set。
JavaScript 数据类型
JavaScript 数字
JavaScript 字符串
JavaScript 数组
JavaScript 对象
JavaScript Map
JavaScript Set
JavaScript null
JavaScript undefined
JavaScript 类型检测
JavaScript 包装对象
JavaScript 函数
JavaScript 参数
JavaScript 匿名函数
JavaScript 箭头函数
JavaScript 递归
JavaScript 闭包
JavaScript 生成器
JavaScript 异步
JavaScript setTimeout
JavaScript setInterval
JavaScript 回调
JavaScript Promise
JavaScript async await