我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

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 等。新版本的有。


网站栏目:js获取变量的类型
文章源于:http://shouzuofang.com/article/pdjice.html

其他资讯