首页 > 开发 > JS > 正文

JavaScript中如何判断一个值的类型

2024-05-06 16:39:43
字体:
来源:转载
供稿:网友

我们知道在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中如何判断一个值的类型,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对VeVb武林网网站的支持!


注:相关教程知识阅读请移步到JavaScript/Ajax教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表