typeof返回值问题

作用 : typeof可以判断数据类型

返回值有

  • number
  • string
  • Boolean
  • object
  • undefined
  • function
console.log(typeof 10);    //number

console.log(typeof '10');   //string

console.log(typeof true);  //boolean

console.log(typeof asdfgh);  //undefined

console.log(typeof null);  //object

console.log(typeof function() {});  //function

但是返回值无论是什么 , 都是会以字符串形式展示出来 

console.log(typeof typeof 10) ;   // string

console.log(typeof typeof "10") ;   // string

console.log(typeof typeof true) ;   // string

console.log(typeof typeof asdfgh) ;   // string

console.log(typeof typeof null) ;   // string

console.log(typeof typeof function(){}) ;   // string

 

封装一个更好一些,更容易理解一些的 判断类型的方法 

  function classOf(obj) {
        return Object.prototype.toString.call(obj).slice(8, -1);
    }

    console.log(classOf(null));         // null
    
    console.log(classOf(NaN));          // number
    
    console.log(classOf(function(){})); // function
    
    console.log(classOf(undefined));    // undefined
    
    console.log(classOf("abc"));        // string
    
    console.log(classOf(123));          // number
    
    console.log(classOf(true));         // Boolean