javascript判断数据类型主要有以下几种方式:
1.typeof
2.instanceof
3.Object.prototype.toString.call()
4.Array.isArray()
5.Number.isNaN()
一、typeof
返回number,string,boolean,undefined,function,object字符串。
其中object,null,array以及通过new关键字创建的基本数据类型,返回的都是object字符串。
typeof("str") //string
var str = new String("str")
typeof(str) //object
二、instanceof
返回true/false。
判断变量是否为某个对象的实例。
其中通过字面量创建的number,boolean,string判断其对应基本数据类型时,均会返回false,必须使用new关键字方式创建的number,boolean,string才会返回true。
undefined和null使用会报错。
"str" instanceof String; //false
var str = new String("str")
str instanceof String; //true
null instanceof null; //Uncaught ReferenceError
三、Object.prototype.toString.call()
返回"[object Xxx]"的字符串。
通过返回的字符串,使用indexOf()判断是哪种数据类型。
Object.prototype.toString.call(null) // [object Null]
四、Array.isArray()
返回true/false。
用于判断是否是数组。
Array.isArray([]) //true
五、Number.isNaN()
返回true/false。
用于判断是否是NaN。
Number.isNaN(NaN) //true
总结
1.判断Array:
用instanceof, Object.prototype.toString.call(),Array.isArray()
2.判断undefined:
用 typeof,Object.prototype.toString.call()
3.判断null:
用Object.prototype.toString.call()
4.判断function:
用typeof,instanceof,Object.prototype.toString.call()
5.判断NaN:
用Number.isNaN()
网友评论