JavaScript中怎样判断一个值的类型

2021-02-22 07:36:09 160 0
tangjin

这篇文章给大家分享的是有关JavaScript中怎样判断一个值的类型的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

我们知道在js中有一个运算符可以帮助我们判断一个值的类型,它就是typeof运算符。

JavaScript中怎样判断一个值的类型

console.log(typeof123);//number
console.log(typeof'123');//string
console.log(typeoftrue);//boolean
console.log(typeofundefined);//undefined
console.log(typeofnull);//object
console.log(typeof[]);//object
console.log(typeof{});//object
console.log(typeoffunction(){});//function

我们从以上结果可以看出typeof的不足之处,它对于数值、字符串、布尔值分别返回number、string、boolean,函数返回function,undefined返回undefined,除此以外,其他情况都返回object。

所以如果返回值为object,我们是无法得知值的类型到底是数组还是对象或者其他值。为了准确得到每个值的类型,我们必须使用js中另一个运算符instanceof。下面简单的说一下instanceof的用法。

instanceof运算符返回一个布尔值,表示指定对象是否为某个构造函数的实例。

instanceof运算符的左边是实例对象,右边是构造函数。它会检查右边构造函数的ptototype属性,是否在左边对象的原型链上。

varb=[];
binstanceofArray//true
binstanceofObject//true

注意,instanceof运算符只能用于对象,不适用原始类型的值。

所以我们可以结合typeof和instanceof运算符的特性,来对一个值的类型做出较为准确的判断。

//得到一个值的类型
functiongetValueType(value){
vartype='';
if(typeofvalue!='object'){
type=typeofvalue;
}else{
if(valueinstanceofArray){
type='array';
}else{
if(valueinstanceofObject){
type='object';
}else{
type='null';
}
}
}
returntype;
}
getValueType(123);//number
getValueType('123');//string
getValueType(true);//boolean
getValueType(undefined);//undefined
getValueType(null);//null
getValueType([]);//array
getValueType({});//object
getValueType(function(){});//function

感谢各位的阅读!关于“JavaScript中怎样判断一个值的类型”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

收藏
分享
海报
0 条评论
160
上一篇:html除br外怎么换行 下一篇:jquery uploadify怎么取消已上传成功文件

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码