Skip to content

一些基础的问题

基础类型

包括值类型(基本对象类型)和引用类型(复杂对象类型)

  • 基本类型(值类型):

    • Number(数字)
    • String(字符串)
    • Boolean(布尔)
    • Symbol(符号)
    • null(空)
    • undefined(未定义)
    • 在内存中占据固定大小,保存在栈内存中
  • 引用类型(复杂数据类型)

    • Object(对象)
    • Function(函数)
    • 其他还有 Array(数组)
    • Date(日期)
    • RegExp(正则表达式)
    • 特殊的基本包装类型(String、Number、Boolean)
    • 以及单体内置对象(Global、Math)等
    • 引用类型的值是对象,保存在堆内存中,栈内存存储的是对象的变量标识符以及对象在堆内存中的存储地址。

使用场景

  • Symbol:使用 Symbol 来作为对象属性名(key) 利用该特性,把一些不需要对外操作和访问的属性使用 Symbol 来定义
  • BigInt:由于在 Number 与 BigInt 之间进行转换会损失精度,因而建议仅在值可能大于 253 时使用 BigInt 类型,并且不在两种类型之间进行相互转换。

什么是原型链

在 JavaScript 中,每个对象都有一个隐藏的属性__proto__,这个属性指向该对象的原型。 原型链是指由每个对象的原型组成的链式结构。在 JavaScript 中,每个对象都有一个原型对象(除了 Object.prototype)。如果一个对象需要访问另一个对象的属性或方法,但该属性或方法并不存在于该对象本身,则会沿着原型链向上查找,直到找到该属性或方法或者到达原型链的顶层。