JS基础之数据类型

139 阅读1分钟

数据类型

(1)七种基本类型
    stringnumberbooleanundefinednullSymbol、bigInt
    判断类型 typeof 例:
    const str = "string"
    const nul = null
    console.log(typeof str) //string
    console.log(typeof null) //若判断null则为object
    
   关于 Symbolsymbol值都是唯一的,一个symbol值能作为对象属性的标识符
       const sym1 = Symbol('xxx')
       const sym2 = Symbol('xxx') //sym2也是新创建的
       console.log(sym1 === sym2) //false
       // 从缓存池中取出原有的值
       const sym3 = Symbol.for('xxx')
       const sym4 = Symbol.for('xxx')//此时从全局保存中获取
       console.log(sym1 === sym2) //true
 

Symbol 应用场景:

① 类似于 UUID() 实现不重复的key属性的操作;
② 避免被重复的算法所覆盖对象的key,场景可以参考计算id;
③ Object.getOwnPropertySymbols可以迭代对象上的该属性;
④解决全局的变量冲突问题。

BigInt 是一种数字类型的数据,它可以表示任意精度格式的整数, 使用 BigInt 可以安全地存储和操作大整数,即使这个数已经超出了 Number 能够表示的安全整数范围。

(2)引用数据类型
     objectDataFunctionArray)
     判断类型 instanceof 例:
     const arr = new Array()
     console.log(arr instanceof Array) // true
栈和堆

栈:存放基本数据类型 (先进先出)
堆:存放引用数据类型 (优先队列)
关于区别:
原始数据类型直接存放在栈中的简单数据段,占据空间小、大小固定,属于被频繁使用的数据;
引用数据类型是存放在堆中的对象,占据空间大,大小不固定,它是在栈中存储了指针,该指针指向堆中该实体的起始地址。获得栈中的地址后,从堆中获得实体。