判断数据类型的几种办法

  事情是这样的,有一段程序调不出来,然后需要看一下返回数据的类型。我以前最常用的就是typeof的方法判断。结果判断出来时object,嘿嘿嘿,这就奇怪了。因为typeof的object可能是数组,可能是一段json数据。造成了数据没办法区分。这个时候我想到了jquery中有对数据类型的判断,但是自己一直没有使用过,所以去百度搜索找了一下,果然找的了,那就是$.type()的方法。

  $.type()这个方法是能区分数据类型的。数组的话,就会返回array,函数就会返回function,如果是一个json对象,才会返回object。其他的类型也是没有问题的,但是我突然想到了,jquery是封装的js,那么是不是js这种也有这种能判断具体数据类型的方法呢,嘿嘿嘿,还真有。那就是tostring.call()

  这个方法就能准确的判断出数据的具体类型,但是他的返回值和原来的稍稍不同。例如数组的话,他就是返回[object Array],为了能直观的看到输出数据,复制下面的代码到编辑器,然后运行就能看出来效果。

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6     </head>
 7     <body>
 8     </body>
 9     <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
10     <script type="text/javascript">
11         var a = 12345;
12         var b = {};
13         var c = [];
14         var d = function (){};
15         var e = "嘿嘿嘿";
16         var f = undefined;
17         var g = null;
18         console.log(typeof(a));
19         console.log(typeof(b));
20         console.log(typeof(c));
21         console.log(typeof(d));
22         console.log(typeof(e));
23         console.log(typeof(f));
24         console.log(typeof(g));
25         console.log("11111111111111111111111111111111");
26         console.log($.type(a));
27         console.log($.type(b));
28         console.log($.type(c));
29         console.log($.type(d));
30         console.log($.type(e));
31         console.log($.type(f));
32         console.log($.type(g));
33         console.log("11111111111111111111111111111111");
34         console.log(toString.call(a));
35         console.log(toString.call(b));
36         console.log(toString.call(c));
37         console.log(toString.call(d));
38         console.log(toString.call(e));
39         console.log(toString.call(f));
40         console.log(toString.call(g));
41         console.log("11111111111111111111111111111111");
42     </script>
43 </html>

  这里还要复习一下,js的基本数据类型。包括:字符串、数字、布尔、数组、对象、Null、Undefined这七种数据类型,所以如果大家引入了jq,还是利用jq的方法判断出来的数据类型更准确。

猜你喜欢

转载自www.cnblogs.com/daniao11417/p/9705125.html