js获取变量的类型

简介:

 js获取变量的类型没有像PHP那样可以使用is_int,is_bool,is_string ..等等的函数判断,但实际应用中也有可能会用到。其实JS中也有这个功能,只是没有像PHP中方便,只要使用Object原型(prototype)的toString就可以完成这个功能。前段时间也看到JQuery内也使用了获取变量类型的操作,其思想一样,下面就以这段代码来分析,其实这个也没有什么特殊的强大派生功能,代码如下:

   m = Object.prototype.toString //这个就是取出Object的原型prototype内的toString,整个功能的核心


   E = {};//初始化对象


   /*这段代码主要是给 E 循环添加所要的类型串,通过[]给对象添加属性,并且所有的都类型名转为小写保存在 E 中 (p 是JQuery对象)*/

   p.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(a, b) {
       E["[object " + b + "]"] = b.toLowerCase()
   })

   /* 判断类型的执行方法,前面的 String 可以直接转换 空(null在js里是一种数据类型,不等于'',false,0) 的变量,如果是其它的变量则可以通过Object原型内的toString来获取,但返回的内容都是   [object Number] 等字符串返回,当类型不存在时返回  object 。call的用法可能查看  js的call与apply  只要获取的类型串在 E 中有那么就可以返回 E 中指定的类型串*/

   type: function(a) {
           return a == null ? String(a) : E[m.call(a)] || "object"
   }


  可以看出整个核心代码就是 Object.prototype.toString.call(待取变量)

  可能会想到为什么不是 Object.toString.call(待取变量)

  但实际是这两种方法是不一个意思,所执行的方式也不是一样的,当然第二种方法是错误用法。prototype可以查看 js中的protorype原型


  其实我们可以直接使用JQuery的type方法。当然必须引用JQuery文件才可以使用。在这个所拿出的代码是从(jQuery v@1.8.0)中抠取的,这段代码可还有一些类型不能判断,如 JSON 等。新版本的有。

本文转自  ttlxihuan    51CTO博客,原文链接:http://blog.51cto.com/php2012web/1287117

相关文章
|
19天前
|
JavaScript
变量和函数提升(js的问题)
变量和函数提升(js的问题)
|
19天前
|
JavaScript
常见函数的4种类型(js的问题)
常见函数的4种类型(js的问题)
11 0
|
1月前
|
JSON JavaScript 前端开发
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
36 0
|
21天前
|
JavaScript 前端开发
JavaScript 中如何检测一个变量是一个 String 类型?
JavaScript 中如何检测一个变量是一个 String 类型?
21 2
|
19天前
|
JavaScript 前端开发
JavaScript数组的功能内置类型
数组是JavaScript的内置类型,JavaScript数组的功能特别强大。下面简单介绍一下JavaScript数组。
|
21天前
|
存储 JavaScript 前端开发
JavaScript 中松散类型的理解
JavaScript 中松散类型的理解
26 3
|
1月前
|
JavaScript 前端开发 容器
javascript中的变量定义
javascript中的变量定义
|
1月前
|
存储 JavaScript 前端开发
编程笔记 html5&css&js 075 Javascript 常量和变量
编程笔记 html5&css&js 075 Javascript 常量和变量
|
1月前
|
Web App开发 iOS开发
编程笔记 html5&css&js 026 HTML输入类型(2/2)
编程笔记 html5&css&js 026 HTML输入类型(2/2)
|
1月前
|
移动开发 数据安全/隐私保护 HTML5
编程笔记 html5&css&js 025 HTML输入类型(1/2)
编程笔记 html5&css&js 025 HTML输入类型(1/2)