时间:2021-05-26
我们知道在js中有一个运算符可以帮助我们判断一个值的类型,它就是typeof运算符。
console.log(typeof 123); //numberconsole.log(typeof '123'); //stringconsole.log(typeof true); //booleanconsole.log(typeof undefined); //undefinedconsole.log(typeof null); //objectconsole.log(typeof []); //objectconsole.log(typeof {}); //objectconsole.log(typeof function() {}); //function我们从以上结果可以看出typeof的不足之处,它对于数值、字符串、布尔值分别返回number、string、boolean,函数返回function,undefined返回undefined,除此以外,其他情况都返回object。
所以如果返回值为object,我们是无法得知值的类型到底是数组还是对象或者其他值。为了准确得到每个值的类型,我们必须使用js中另一个运算符instanceof。下面简单的说一下instanceof的用法。
instanceof运算符返回一个布尔值,表示指定对象是否为某个构造函数的实例。
instanceof运算符的左边是实例对象,右边是构造函数。它会检查右边构造函数的ptototype属性,是否在左边对象的原型链上。
var b = [];b instanceof Array //trueb instanceof Object //true注意,instanceof运算符只能用于对象,不适用原始类型的值。
所以我们可以结合typeof和instanceof运算符的特性,来对一个值的类型做出较为准确的判断。
//得到一个值的类型function getValueType(value) { var type = ''; if (typeof value != 'object') { type = typeof value; } else { if (value instanceof Array) { type = 'array'; } else { if (value instanceof Object) { type = 'object'; } else { type = 'null'; } } } return type;}getValueType(123); //numbergetValueType('123'); //stringgetValueType(true); //booleangetValueType(undefined); //undefinedgetValueType(null); //nullgetValueType([]); //arraygetValueType({}); //objectgetValueType(function(){}); //function总结
以上所述是小编给大家介绍的JavaScript中如何判断一个值的类型,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
instanceof运算符简介在JavaScript中,判断一个变量的类型尝尝会用typeof运算符,在使用typeof运算符时采用引用类型存储值会出现一个问题
在JavaScript中,判断一个变量的类型尝尝会用typeof运算符,在使用typeof运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,
JavaScript本身没有判断一个变量是不是空值的函数,因为变量有可能是string,object,number,boolean等类型,类型不同,判断方法也不
instanceof运算符简介在JavaScript中,判断一个变量的类型尝尝会用typeof运算符,在使用typeof运算符时采用引用类型存储值会出现一个问题
JavaScript中,==与===操作符均可用于判断两个值是否相等;不同之处在于,如果进行判断的两个值类型不一致,===操作符会直接返回false,而==操作