浅识js——判断数据类型

54 阅读1分钟

js基础知识——判断数据类型

一、typeof

  • 问题:只能检测基本数据类型

二、constructor

  • 语法: 数据结构.constructor
  • 问题: null 和 undefined 不能使用
  • 使用场景: 一般用于引用数据类型
  • 潜在问题: 这是原型对象的某一个属性, 我们是可以手动更改的
      function Person () {}
      const p1 = new Person()
      console.log(p1.constructor)
      // 1. 先在对象自身查找, 如果找到直接使用, 如果没找到, 会去对象的 __proto__ 内部查找   2. 相当于去了 Person 的 prototype 内部查找
      console.log(p1.constructor === Person)  // true

三、 Object.prototype.toString.call(要检测的数据)

  • 返回值: [object 数据类型]
    • (字符串格式的, 并且数据类型的首字母是大写)
    • 使用场景: 任意类型都可准确判断, 所以大部分情况下都可以使用
      console.log(Object.prototype.toString.call([]))
      console.log(Object.prototype.toString.call({}))
      console.log(Object.prototype.toString.call(null))
      console.log(Object.prototype.toString.call(undefined))
      console.log(Object.prototype.toString.call(''))
      console.log(Object.prototype.toString.call(100))