Skip to content

类型

原始值

  • Null: 没有对象
  • Undefined: 没有值
  • Boolean
  • Number
  • BigInt
  • String
  • Symbol

对象包装类型

除了 null 和 undefined,所有原始类型都有它们相应的对象包装类型,这为处理原始值提供可用的方法。 当在原始值上访问属性时,JavaScript 会自动将值包装到相应的包装对象中,并访问对象上的属性。

Object

在 JavaScript 中,对象是唯一可变的值。事实上,函数也是具有额外可调用能力的对象

属性

属性键要么是字符串类型,要么是 symbol。属性值可以是任何类型的值,包括其他对象,从而可以构建复杂的数据结构。

  • 数据属性: 数据属性将键与值相关联
  • 访问器属性: 将键与两个访问器函数(get 和 set)像关联,以获取或者存储值。

索引类集合:数组和类型化数组

  • Array
  • TypedArray
  • Float32Array
  • Int8Array

带键的集合

  • Map
  • WeakMap: WeakMap 的 key 只能是 Object 类型。 原始数据类型 是不能作为 key 的(比如 Symbol)。
  • Set
  • WeakSet: 只能是对象的集合,而不能像 Set 那样,可以是任何类型的任意值。(是不可枚举的)

    Object 和 Map 的区别: 1. Object的键名只可以是String或者Symbol, 但是 Map 不受限制 2. Object 上的属性访问是使用原型链的方式访问的,访问不存在的属性时会有性能问题

强制类型转换


references: * Data_structures