判斷數據的類型

var Bool = false
var Num = 1
var Str = 'aa'
var Undefined = undefined
var Null = null
var Arr = [1, 2, 3]
var Obj = {a: 'aa', b: 'bb'}
var Fun = function() {console.log('我是函數')}

1.typeof: 適合基本的數據類型和函數(最經常使用的方式)
  console.log(typeof Bool);   // boolean
  console.log(typeof Num);    // number
  console.log(typeof Str);    // string
  console.log(typeof Undefined);    // undefined
  console.log(typeof Null);    // object
  console.log(typeof Arr);    // object
  console.log(typeof Obj);    // object
  console.log(typeof Fun);    // function
  咱們能夠看出,數組、null和對象打印的都是object,咱們不能分辨數組和對象
2.instanceof: 判斷對象類型,基於原型鏈去判斷。
  console.log(Bool instanceof Boolean);// true
  console.log(Num instanceof Number); // true
  console.log(Str instanceof String); // true
  console.log(Undefined instanceof Object); // false
  console.log(Arr instanceof Array);  // true
  console.log(Null instanceof Object); // false
  console.log(Obj instanceof Object); // true
  console.log(Fun instanceof Function);// true
  咱們能夠看出undefined和null不能分辨
3.jquery的$.type
  console.log($.type(Bool));  //boolean
  console.log($.type(Num));   //number
  console.log($.type(Str));   //string
  console.log($.type(Undefined));   //undefined
  console.log($.type(Null));   //null
  console.log($.type(Arr));   //array
  console.log($.type(Obj));   //object
  console.log($.type(Fun));   //function
 $.type()內部原理就是用的Object.prototype.toString.call()
複製代碼
相關文章
相關標籤/搜索