js如何获取php中的变量的类型,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 等。新版本的有。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值