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中的`typeof`运算符是用于检测变量或表达式的数据类型的。它会返回一个表示该值类型的字符串,这对于编写健壮的代码至关重要。在JavaScript中,`typeof`可能返回以下几种类型: 1. **字符串(string)**...
在面试中,理解并掌握JavaScript的关键概念是非常重要的,其中包括`typeof`运算符、变量计算、原型链以及jQuery库的使用。 首先,`typeof`运算符用于确定变量的数据类型。它能准确识别所有值类型,如`undefined`、`...
这个库的使用不仅限于前端开发,也可以应用于Node.js环境中,因为它针对的是JavaScript本身,而不仅仅是浏览器环境。总之,`lutils-typeof`是一个强大的工具,可以帮助开发者在处理JavaScript类型问题时变得更加...
lutils-typeof库是一个专门为前端开发者设计的轻量级工具,它扩展了JavaScript原生的`typeof`操作符,增强了类型检测的能力。相比于原生的`typeof`,lutils-typeof能够准确识别更多的数据类型,包括但不限于null、...
在这篇文章中,我们将聚焦于三个关键的API扩展:应用缓存、服务端消息和桌面通知。 首先,让我们详细探讨**应用缓存**。应用缓存是HTML5离线存储的一种方式,允许开发者将静态资源(如HTML、CSS、JavaScript文件等...
JavaScript是一种基于原型的编程语言,它允许开发者通过原型(prototype)的方式来扩展原生对象的功能。在JavaScript中,Array和Date对象是两个常用的内置对象,分别用于处理数组和日期相关操作。本知识点将详细解释...
通过本文的学习,我们深入了解了如何使用`prototype`来优化对象方法的存储,并学习了对象扩展和反射的基本原理及实际应用场景。这些技术不仅有助于提高代码的可维护性和性能,还能帮助我们在处理复杂数据结构时更加...
- 通过获取文件扩展名来判断资源类型是 JS 还是 CSS。 4. **创建并配置 `<script>` 或 `<link>` 元素**: - 根据资源类型设置相应的元素类型(`<script>` 或 `<link>`)及其属性(如 `type`、`charset`、`rel`)...
7. **扩展性强**:ECharts 通过插件系统支持第三方扩展,可以结合其他JavaScript库如 jQuery 或 Vue.js 进行深度整合,实现更复杂的功能。 在压缩包中包含的 `echarts.min.js` 文件是 ECharts 的压缩版核心库,这个...
HTML5的Javascript API扩展在本地存储方面带来了全新的体验,解决了传统方法中存在的一系列问题。在HTML5之前,开发者在客户端存储数据时面临多种选择,如HTTP Cookie、IE的userData、Flash Cookie以及Google Gears...
本书是 JavaScript 语言的参考手册,包括核心语言中的对象和客户端、服务器端的扩展。JavaScript 是 Netscape 跨平台的基于对象的适合于客户和服务器的脚本语言。 本书已经更新于 JavaScript 1.2 的新特性,其它...
在Django框架中,开发富文本编辑器时,TinyMCE是一个常见的选择。TinyMCE是一个功能强大的JavaScript WYSIWYG(所见即所得)文本编辑器,它...在实际开发过程中,还可以根据项目需求对TinyMCE进行更详细的定制和扩展。
随着时间的发展,JavaScript不仅限于浏览器环境,也逐渐扩展到了服务器端(如Node.js)以及其他各种应用场景。 ### 二、基本语法 #### 1. 输出信息 JavaScript中的`document.write()`函数可以用来向HTML文档中写入...
在JavaScript中,typeof运算符用于检测变量的数据类型,它返回一个字符串,表示变量的类型。例如,typeof undefined返回"undefined",但需要注意的是,typeof null虽然返回"object",但null并不是一个对象。 ...
`typeof`运算符用于检测变量的类型,但当用于数组时,它会返回"object",因为数组在JavaScript中被视为特殊的对象。为了判断一个变量是否为数组,可以使用`instanceOf`运算符检查它是否属于`Array`构造函数的实例,...
在JavaScript编程语言中,判断一个变量是否为函数是常见的需求,特别是在执行动态加载或有条件调用函数时。这里我们探讨的是一种使用`try...catch`语句来检测函数是否存在并安全执行的方法。以下是对给定代码的详细...
- **外部式**:将JavaScript代码写在一个单独的.js文件中,并通过`<script src="yourfile.js"></script>`标签引用该文件。 #### 2. 预测以下代码片段的输出结果: ```javascript var str; alert(typeof str); ``` ...
6. **类和实例检查**:在 JavaScript 中,你可以用 `typeof` 来检查一个变量是否为构造函数,但无法检查一个对象是否是某个类的实例。TypesJS 提供了 `isInstanceOf()` 方法,可以用来验证对象是否由指定的类创建。 ...
### JavaScript常用字符串与数组扩展函数小结 #### 引言 在现代Web开发中,JavaScript是一种必不可少的语言。作为一门功能强大的脚本语言,它提供了大量的内置对象和方法来处理各种数据类型,其中最常用的就是字符...