Javascript 的 typeof可以获取变量的类型,有如下6种返回值: 
1)number; 
2)string; 
3)boolean; 
4)object 
5)function; 
6)undefined. 
javascript判断变量类型的自定义函数 
通常用typeof来判断js变量的类型,但很多时候仅仅typeof满足不了要求的。 

我写了一个自定义函数来做这个事,判断的比较全面了, 存为typeof_extend.js。

function varType(v){ if(typeof v==="object"){ if(v===null)return 'null'; if(v.constructor) return (v.constructor.toString()).match(/(?: )[\w\$]+/)[0]; if(typeof typeof2==='undefined' && window.execScript){ window.execScript('Function vbsTypeName(o):vbsTypeName=TypeName(o):End Function','vbscript'); window.execScript('function typeof2(o){return vbsTypeName(o)}','jscript'); } if(typeof typeof2!=='undefined'){ return typeof2(v); } return "object"; } return typeof v;
} //对于普通js常量和js对象,各浏览器是基本一致的
console.log(varType()); //undefined
console.log(varType(100)); //number
console.log(varType({})); //Object
console.log(varType([])); //Array
console.log(varType(/ /)); //RegExp
console.log(varType(new Date())); //Date
console.log(varType(Date)); //function
console.log(varType(Object)); //function
console.log(varType(RegExp)); //function //对于DOM对象,各浏览器可能会有不同值
console.log(varType(window)); //IE:HTMLWindow2 FF:Window
console.log(varType(document)); //IE:HTMLDocument FF:HTMLDocument
console.log(varType(document.body)); //IE:HTMLBody FF:HTMLBodyElement
console.log(varType(Option)); //IE:Object  FF:function
console.log(varType(Image)); //IE:Object  FF:function
console.log(varType(navigator)); //IE:DispHTMLNavigator FF:Navigator //以下几个只适用于IE,其他内核浏览器不支持
if(!!window.VBArray){ console.log(varType(ActiveXObject)); //IE:function console.log(varType(Enumerator)); //IE:function console.log(varType(new ActiveXObject("Scripting.Dictionary"))); //IE:Dictionary console.log(varType(new Enumerator())); //IE:Enumerator
}

将其放到html中,名为,代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>cookie生成测试</title>
</head>
<body>
<script type='text/javascript' src='http://www.abc.com/js/typeof_extend.js'></script>
</body>
</html>

在chrome 39中测试如下:


在IE 11中测试如下:

参考文献

[1].http://shenjc2008.iteye.com/blog/1009366

扩展typeof来判断js变量的类型相关推荐

  1. 如何查看某个js 变量 runtime 类型

    Created by Jerry Wang, last modified on Sep 22, 2015 例如想查看var tab runtime时的object type, 一种办法是根据byId传 ...

  2. 前端:JS/17/前篇总结(JS程序的基本语法,变量),数据类型-变量的类型(数值型,字符型,布尔型,未定义型,空型),数据类型转换,typeof()判断数据类型,从字符串提取整数或浮点数的函数

    JS程序的基本语法 1,JS是区分大小写的,如:Name和name是不同的: 2,JS中每一条语句,一般以英文的分号(;)结束,在Java中是严格地一定要加上分号,不然会报错:但在JavaScript ...

  3. JS进阶 你真的掌握变量和类型了吗?

    Table of Contents 简言 导读 一.JavaScript数据类型 原始类型 对象类型 二.为什么区分原始类型和对象类型 2.1 不可变性 栈内存: 2.2 引用类型 堆内存: 2.3 ...

  4. 分类型变量预测连续型变量_「JS进阶」你真的掌握变量和类型了吗

    文章转载自公众号 code秘密花园 , 作者 ConardLi 一起看下面几个问题: JavaScript中的变量在内存中的具体存储形式是什么? 0.1+0.2为什么不等于0.3?发生小数计算错误的具 ...

  5. java 获取js变量类型_JavaScript 的数据类型及其检测

    原标题:JavaScript 的数据类型及其检测 作者:浪里行舟 Java 有几种类型的值? Java 有两种数据类型,分别是基本数据类型和引用数据类型.其中基本数据类型包括 Undefined.Nu ...

  6. 如何判断JS中变量的类型

    前言 判断JS类型,有以下几种方法: typeof instanceof Object.property.toString.call JS中的数据类型 JS的基本类型共有七种: number stri ...

  7. 1.js变量、作⽤域和引⽤类型,js制作页。

    一.变量 javascript的变量与其它语⾔(强类型)的变量是有很⼤的区别的.JavaScript 变量松散类型的本质, var result; result = 1; alert(typeof r ...

  8. HTML学习9 JS 数字和字符串 变量的类型 运算符和表达式 布尔值和关系运算符、逻辑运算符

    JavaScript简介 1.1 JavaScript的用途 JavaScript用来制作web页面交互效果,提升用户体验. 简单列出几个JavaScript能够制作的页面效果,它能干什么: 轮播图 ...

  9. Js变量如何转换为字符串类型?

    Js变量转为字符串类型的方法有以下3种,大家可以根据场景选择适合的方法,下面我们一一介绍. 1. toString()用法 语法: 变量 = 变量.toString(); 案例: <script ...

最新文章

  1. 嵌入式Linux入门经典笔记
  2. 运维必知的23个经验教训,值得收藏!
  3. .Net 中接口应用的知识点(排序)
  4. win7配置iis 出现:HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容...
  5. 大数据分析对企业有什么影响
  6. centos mysql
  7. HDFS的命令行使用【常用 hdfs 命令】
  8. 神经网络学习小记录59——Pytorch搭建常见分类网络平台(VGG16、MobileNetV2、ResNet50)
  9. Android基站定位源代码
  10. Multisim仿真实验——小信号调谐放大器
  11. 计算机公式上下左右,十五个常用函数公式,值得收藏
  12. win10怎么用计算机二进制,教你如何使用Win10计算器进行进制转换?
  13. 科大讯飞与IBM组队人工智能蓝蓝CP
  14. Blend Shape Pose Animation
  15. 图形库LVGL v8.2版本移植
  16. greendao的使用
  17. 如何直观的理解机器学习过拟合和欠拟合?
  18. 微信小程序-如何申请百度开放平台的密钥
  19. 算法的数值稳定性实验报告用c语言,数值计算实验教案.doc
  20. openlayers自定义控件 ---仿百度地图指南针

热门文章

  1. Python 中的locals()
  2. Curator Cache
  3. [SDOI2015]权值
  4. Java学习笔记(二)不定时更新
  5. (转)MySQL联表查询
  6. usaco Number Triangles
  7. python八大排序算法 间书_python八大排序算法
  8. php分页显示页数代码,php-Codeigniter分页显示结果数和页数
  9. android监听输入框光标,EditText光标的移动
  10. 苹果硬盘容量启动linux,你的MAC OS之旅