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()
复制代码