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()
複製代碼