一 : JS数据类型介绍
- js中数据类型分为两种,即基本数据类型和引用数据类型
- js中基本数据类型包括,String、Number、Undefined、Null、Boolean、Symbol(es6新增)
- .js的引用数据类型也就是Object类型,Array、Function、Object
二 : 判断数据类型
let isBoolean = true;
let isNumber = 1;
let isString = 'aaa';
let isUndefined = undefined;
let isNull = null;
let isArray = [1,2,3];
let isObj = {
name:"小明",
age:20
};
let isFun = function(){}
1. 使用typeof
console.log(typeof(isBoolean)) // boolean
console.log(typeof(isNumber)); //number
console.log(typeof(isString));// string
console.log(typeof(isUndefined)); // undefined
console.log(typeof(isNull)); // object
console.log(typeof(isArray));// object
console.log(typeof(isObj));// object
console.log(typeof(isFun)); // function
2.使用instanceof
console.log(isBoolean instanceof Boolean); //false
console.log(isNumber instanceof Number); //false
console.log(isUndefined instanceof Object);//false
console.log(isNull instanceof Object);//false
console.log(isArray instanceof Array);//true
console.log(isObj instanceof Object);//true
console.log(isFun instanceof Function);//true
由上边的打印结果可以看出,instanceof方法用来判断基础数据类型是不可取的,
instanceof方法用来判断Array,Object,Function类型可行的.
3.使用Object.prototype.toString.call
console.log(Object.prototype.toString.call(isBoolean));
//[object Boolean]
console.log(Object.prototype.toString.call(isNumber));
//[object Number]
console.log(Object.prototype.toString.call(isString));
//[object String]
console.log(Object.prototype.toString.call(isUndefined));
//[object Undefined]
console.log(Object.prototype.toString.call(isNull));
//[object Null]
console.log(Object.prototype.toString.call(isArray));
//[object Array]
console.log(Object.prototype.toString.call(isObj));
//[object Object]
console.log(Object.prototype.toString.call(isFun));
//[object Function]
4. 可以使用jquery中的$.type
console.log($.type(isBoolean));//boolean
$.type()内部原理就是用的Object.prototype.toString.call()