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


Posted in Javascript onSeptember 15, 2017

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

console.log(typeof 123);  //number
console.log(typeof '123'); //string
console.log(typeof true);  //boolean
console.log(typeof undefined); //undefined
console.log(typeof null); //object
console.log(typeof []);  //object
console.log(typeof {}); //object
console.log(typeof function() {}); //function

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

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

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

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

var b = [];
b instanceof Array //true
b 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);  //number
getValueType('123'); //string
getValueType(true);  //boolean
getValueType(undefined); //undefined
getValueType(null); //null
getValueType([]);   //array
getValueType({});  //object
getValueType(function(){}); //function

总结

以上所述是小编给大家介绍的JavaScript中如何判断一个值的类型,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript基本语法分析说明
Jun 15 Javascript
基于jquery的地址栏射击游戏代码
Mar 10 Javascript
Dom 学习总结以及实例的使用介绍
Apr 24 Javascript
Jquery搜索父元素操作方法
Feb 10 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
Apr 13 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
Jun 03 Javascript
浅谈几种常用的JS类定义方法
Jun 08 Javascript
javascript实现简易计算器
Feb 01 Javascript
jQuery动画_动力节点节点Java学院整理
Jul 04 jQuery
JavaScript定时器setTimeout()和setInterval()详解
Aug 18 Javascript
vue 解决循环引用组件报错的问题
Sep 06 Javascript
JS获取本地地址及天气的方法实例小结
May 10 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
Sep 15 #Javascript
动态创建Angular组件实现popup弹窗功能
Sep 15 #Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
Sep 15 #Javascript
angular4模块中给标签添加背景图的实现方法
Sep 15 #Javascript
基于Vue生产环境部署详解
Sep 15 #Javascript
基于Vue单文件组件详解
Sep 15 #Javascript
json2.js 入门教程之使用方法与实例分析
Sep 14 #Javascript
You might like
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
php 空格,换行,跳格使用说明
2009/12/18 PHP
php GeoIP的使用教程
2011/03/09 PHP
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
php生成静态页面的简单示例
2014/04/17 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
Laravel框架控制器的middleware中间件用法分析
2019/09/30 PHP
将文本输入框内容加入表中的js代码
2013/08/18 Javascript
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
angularjs实现与服务器交互分享
2014/06/24 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
python中List的sort方法指南
2014/09/01 Python
python中对list去重的多种方法
2014/09/18 Python
以一段代码为实例快速入门Python2.7
2015/03/31 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
写给女朋友的道歉信
2014/01/08 职场文书
商业项目策划方案
2014/06/05 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
教师师德师风整改措施
2014/10/24 职场文书
老干部工作汇报材料
2014/10/28 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
《自己的花是让别人看的》教学反思
2016/02/19 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书
MySQL图形化管理工具Navicat安装步骤
2021/12/04 MySQL