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 获取模态窗口的滚动位置代码
Aug 06 Javascript
js、css、img等浏览器缓存问题的2种解决方案
Oct 23 Javascript
浅谈被jQuery抛弃的函数及替代函数
May 03 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
Jun 06 Javascript
详解JavaScript节流函数中的Throttle
Jul 16 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
Sep 17 Javascript
Angular.Js之Scope作用域的学习教程
Apr 27 Javascript
详解vue.js的devtools安装
May 26 Javascript
node.js express捕获全局异常的三种方法实例分析
Dec 27 Javascript
在VUE style中使用data中的变量的方法
Jun 19 Javascript
如何手写一个简易的 Vuex
Oct 10 Javascript
vue实现下拉菜单树
Oct 22 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
介绍php设计模式中的工厂模式
2008/06/12 PHP
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
老版本PHP转义Json里的特殊字符的函数
2015/06/08 PHP
php版微信自动登录并获取昵称的方法
2016/09/23 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
2019/10/15 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
Express + Session 实现登录验证功能
2017/09/08 Javascript
深入理解ES6之数据解构的用法
2018/01/13 Javascript
vue.js移动数组位置,同时更新视图的方法
2018/03/08 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
python3简单实现微信爬虫
2015/04/09 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
快速了解python leveldb
2018/01/18 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
Python解析json时提示“string indices must be integers”问题解决方法
2019/07/31 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
PyQt5实现画布小程序
2020/05/30 Python
浅析css3中matrix函数的使用
2016/06/06 HTML / CSS
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
美国性感内衣店:Yandy
2018/06/12 全球购物
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
解除合同协议书
2014/04/17 职场文书
励志演讲稿300字
2014/08/21 职场文书
2014年企业党支部工作总结
2014/12/04 职场文书
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python
SpringRetry重试框架的具体使用
2021/07/25 Java/Android
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android