检测数据类型的方法 instanceof typeof 终极检测类型 Object.prototype.toString.call()

检测数据类型的方法:

       1.instanceof 

       2.typeof       

       3. 终极检测类型 Object.prototype.toString.call()

      =======================================

        1.instanceof 检测出来的返回值是一个布尔值 可以检测复杂数据类型/引用型数据类型Object function
         (但是无法准确检测Arrary类型 =>检测出来是Object类型)

        2. typeof 检测出来的返回值是基本数据类型(但无法检测null =>检测出来是Object)
           (这两种相对缺陷 检测类型不准确)

        3.终极检测类型 Object.prototype.toString.call()
//   function Father() {
      //     this.sing = function () {
      //       //   console.log("我是父级");
      //     };
      //   }
      //   const zjl = new Father();
      //   zjl.sing();
      //   console.log(zjl instanceof Father); //true
      //   console.log(zjl instanceof Object); //true
      //   console.log(zjl instanceof Array); //false
      //   console.log(Array instanceof Object); //true Array检测出来的类型是Object
      //   console.log([1, 4, 5, 7] instanceof Object); // true
      //   console.log([1, 4, 5, 7] instanceof Array); // true

      //===========
      //   console.log(Object.prototype.toString.call(1)); // [object Number]
      //   console.log(Object.prototype.toString.call("我是字符串")); //[object String]
      //   console.log(Object.prototype.toString.call(undefined)); //[object Undefined]
      //   console.log(Object.prototype.toString.call(null)); //[object Null]
      //   console.log(Object.prototype.toString.call(true)); //[object Boolean]
      //   console.log(Object.prototype.toString.call({})); //[object Object]
      //   console.log(Object.prototype.toString.call(function () {})); //[object Function]
      //   console.log(Object.prototype.toLocaleString.call(NaN)); //NaN
      //   console.log(Object.prototype.toString.call(Number)); //[object Function]

      //   console.log(Object.prototype.toString.call(String)); //[object Function]

 

posted @ 2022-11-29 19:53  噢噢噢J  阅读(40)  评论(0编辑  收藏  举报