判断数据的类型

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()
复制代码
相关文章
相关标签/搜索