我的博客

js 数据类型

最近编辑于
js 数据类型

js 数据类型分为两大类:基本数据类型、引用数据类型

  1. 基本数据类型:number、string、Boolean、undefined、null、bigint、symbol,其中bigint和symbol是es6后新增的数据类型
  2. 引用数据类型: object、array、function、date、map、set,其实本质上都是属于object的一种

bigint和symbol解决的问题

  1. js的最大安全数是2^53-1,超出会丢失精度,为了解决大数计算问题,推出大数这一数据类
  2. symbol 解决唯一键问题,避免覆盖
let a  = 11111111111111111;
let b  = 11111111111111111n;
console.log(a); // 11111111111111112
console.log(b); // 11111111111111111n

const _private = Symbol('private');
class MyClass {
  constructor() {
    this[_private] = '隐藏数据';
  }
}

如何判断数据类型

  1.  typeof可以检测基本数据类型, 但是不能区分object和null
let a = 1
let b = null
let c = {
  name: 'John',
}

console.log(typeof a) // number
console.log(typeof b) // object
console.log(typeof c) // object
  1.  instanceof可以判断一个对象的隐式原型对象是否在某个构造函数的原型链上,从而判断这个对象,但是不能检测基本数据类型
console.log(a instanceof Number) // false
console.log(c instanceof Object) // true
  1. Object.prototype.toString.call() 可以准确判断出数据的类型,
console.log(Object.prototype.toString.call(a)) // [object Number]
console.log(Object.prototype.toString.call(b)) // [object Null]
console.log(Object.prototype.toString.call(c)) // [object Object]

评论 (0)

暂无评论,成为第一个评论者!