`
shenjc2008
  • 浏览: 139773 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

js中的typeof及扩展

阅读更多
Javascript 的 typeof可以获取变量的类型
       有如下6种返回值:
      1)number;
      2)string;
      3)boolean;
      4)object
      5)function;
      6)undefined.



javascript判断变量类型的自定义函数


通常用typeof来判断js变量的类型,但很多时候仅仅typeof满足不了要求的。

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




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对象,各浏览器是基本一致的 
alert(varType()); //undefined 
alert(varType(100)); //number 
alert(varType({})); //Object 
alert(varType([])); //Array 
alert(varType(/ /)); //RegExp 
alert(varType(new Date())); //Date 
alert(varType(Date)); //function 
alert(varType(Object)); //function 
alert(varType(RegExp)); //function 

//对于DOM对象,各浏览器可能会有不同值 
alert(varType(window)); //IE:HTMLWindow2 FF:Window 
alert(varType(document)); //IE:HTMLDocument FF:HTMLDocument 
alert(varType(document.body)); //IE:HTMLBody FF:HTMLBodyElement 
alert(varType(Option)); //IE:Object  FF:function 
alert(varType(Image)); //IE:Object  FF:function 
alert(varType(navigator)); //IE:DispHTMLNavigator FF:Navigator 

//以下几个只适用于IE,其他内核浏览器不支持 
alert(varType(ActiveXObject)); //IE:function 
alert(varType(Enumerator)); //IE:function 
alert(varType(new ActiveXObject("Scripting.Dictionary"))); //IE:Dictionary 
alert(varType(new Enumerator())); //IE:Enumerator
分享到:
评论

相关推荐

    【JavaScript源代码】一篇文章弄懂js中的typeof用法.docx

    JavaScript中的`typeof`运算符是用于检测变量或表达式的数据类型的。它会返回一个表示该值类型的字符串,这对于编写健壮的代码至关重要。在JavaScript中,`typeof`可能返回以下几种类型: 1. **字符串(string)**...

    js 面试题1 typeof-变量计算-原型

    在面试中,理解并掌握JavaScript的关键概念是非常重要的,其中包括`typeof`运算符、变量计算、原型链以及jQuery库的使用。 首先,`typeof`运算符用于确定变量的数据类型。它能准确识别所有值类型,如`undefined`、`...

    前端开源库-lutils-typeof

    这个库的使用不仅限于前端开发,也可以应用于Node.js环境中,因为它针对的是JavaScript本身,而不仅仅是浏览器环境。总之,`lutils-typeof`是一个强大的工具,可以帮助开发者在处理JavaScript类型问题时变得更加...

    前端开源库-lutils-typeof.zip

    lutils-typeof库是一个专门为前端开发者设计的轻量级工具,它扩展了JavaScript原生的`typeof`操作符,增强了类型检测的能力。相比于原生的`typeof`,lutils-typeof能够准确识别更多的数据类型,包括但不限于null、...

    突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)

    在这篇文章中,我们将聚焦于三个关键的API扩展:应用缓存、服务端消息和桌面通知。 首先,让我们详细探讨**应用缓存**。应用缓存是HTML5离线存储的一种方式,允许开发者将静态资源(如HTML、CSS、JavaScript文件等...

    基于prototype扩展的JavaScript常用函数库

    JavaScript是一种基于原型的编程语言,它允许开发者通过原型(prototype)的方式来扩展原生对象的功能。在JavaScript中,Array和Date对象是两个常用的内置对象,分别用于处理数组和日期相关操作。本知识点将详细解释...

    javascript Prototype 对象扩展.docx

    通过本文的学习,我们深入了解了如何使用`prototype`来优化对象方法的存储,并学习了对象扩展和反射的基本原理及实际应用场景。这些技术不仅有助于提高代码的可维护性和性能,还能帮助我们在处理复杂数据结构时更加...

    javascript实现动态导入js与css等静态资源文件的方法.docx

    - 通过获取文件扩展名来判断资源类型是 JS 还是 CSS。 4. **创建并配置 `<script>` 或 `<link>` 元素**: - 根据资源类型设置相应的元素类型(`<script>` 或 `<link>`)及其属性(如 `type`、`charset`、`rel`)...

    echarts第三方插件js

    7. **扩展性强**:ECharts 通过插件系统支持第三方扩展,可以结合其他JavaScript库如 jQuery 或 Vue.js 进行深度整合,实现更复杂的功能。 在压缩包中包含的 `echarts.min.js` 文件是 ECharts 的压缩版核心库,这个...

    突袭HTML5之Javascript API扩展3—本地存储全新体验

    HTML5的Javascript API扩展在本地存储方面带来了全新的体验,解决了传统方法中存在的一系列问题。在HTML5之前,开发者在客户端存储数据时面临多种选择,如HTTP Cookie、IE的userData、Flash Cookie以及Google Gears...

    JavaScript中文参考手册

    本书是 JavaScript 语言的参考手册,包括核心语言中的对象和客户端、服务器端的扩展。JavaScript 是 Netscape 跨平台的基于对象的适合于客户和服务器的脚本语言。 本书已经更新于 JavaScript 1.2 的新特性,其它...

    Django的富文本框中tiny_mce需要的js文件

    在Django框架中,开发富文本编辑器时,TinyMCE是一个常见的选择。TinyMCE是一个功能强大的JavaScript WYSIWYG(所见即所得)文本编辑器,它...在实际开发过程中,还可以根据项目需求对TinyMCE进行更详细的定制和扩展。

    事半功倍系列之javascript

    随着时间的发展,JavaScript不仅限于浏览器环境,也逐渐扩展到了服务器端(如Node.js)以及其他各种应用场景。 ### 二、基本语法 #### 1. 输出信息 JavaScript中的`document.write()`函数可以用来向HTML文档中写入...

    JavaScript教程,一看就会(Word版)

    在JavaScript中,typeof运算符用于检测变量的数据类型,它返回一个字符串,表示变量的类型。例如,typeof undefined返回"undefined",但需要注意的是,typeof null虽然返回"object",但null并不是一个对象。 ...

    Array, Array Constructor, for in loop, typeof, instanceOf

    `typeof`运算符用于检测变量的类型,但当用于数组时,它会返回"object",因为数组在JavaScript中被视为特殊的对象。为了判断一个变量是否为数组,可以使用`instanceOf`运算符检查它是否属于`Array`构造函数的实例,...

    Javascript 判断是否存在函数的方法

    在JavaScript编程语言中,判断一个变量是否为函数是常见的需求,特别是在执行动态加载或有条件调用函数时。这里我们探讨的是一种使用`try...catch`语句来检测函数是否存在并安全执行的方法。以下是对给定代码的详细...

    JavaScript试题集

    - **外部式**:将JavaScript代码写在一个单独的.js文件中,并通过`<script src="yourfile.js"></script>`标签引用该文件。 #### 2. 预测以下代码片段的输出结果: ```javascript var str; alert(typeof str); ``` ...

    JavaScript 类型检查库 types.js.zip

    6. **类和实例检查**:在 JavaScript 中,你可以用 `typeof` 来检查一个变量是否为构造函数,但无法检查一个对象是否是某个类的实例。TypesJS 提供了 `isInstanceOf()` 方法,可以用来验证对象是否由指定的类创建。 ...

    JavaScript常用字符串与数组扩展函数小结_.docx

    ### JavaScript常用字符串与数组扩展函数小结 #### 引言 在现代Web开发中,JavaScript是一种必不可少的语言。作为一门功能强大的脚本语言,它提供了大量的内置对象和方法来处理各种数据类型,其中最常用的就是字符...

Global site tag (gtag.js) - Google Analytics