js如何判断一个变量的具体类型
思路:
- typeof 可以返回变量的类型的字符串,但是要注意typeof 不能具体判断出Array,Function,null,object,它们的返回值都是‘object’ 。
- 所以要注意区别出这几个类型,可以使用instanceof 或者‘===’方法进行进一步细化判断。
function clearify (x){
if(typeof x === 'object'){
if(x === Array){ //x instanceof Array || Array.isArray(x)
console.log('Array');
}
else if(x === Function){ //x instanceof Function
console.log('Function');
}
else if(x === null){
console.log('null');
}
else{
console.log('object');
}
}
else{
console.log(typeof x);
}
}
//检测输出
var a1 = [1,2,7];
var a2 = function(){
console.log('我是函数');
}
var a3 = null;
var a4 = {
1:"hh",
2:"ww",
3:"aa"
}
var a5 = 6;
var a6 = true;
var a7 ;
clearify(a1);
clearify(a2);
clearify(a3);
clearify(a4);
clearify(a5);
clearify(a6);
clearify(a7);
输出:
※ 注意:因为null不是一个对象,所以不能使用instanceof 判断它(如果有更简洁的方法,可以在评论区评论哦~)