VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > JavaScript教程 >
  • js 判断对象类型

在企业级的开发中,我们常用 typeof 来判断企业 对象类型;但是 typeof 不能判断 Array 和 null

这里我们使用一个 原型上的 toString方法;请看一下代码:

复制代码
 1 <script>
 2     var allType = {
 3         "[object Array]" : "Array",
 4         "[object String]" : "String",
 5         "[object Function]" : "Function",
 6         "[object Boolean]" : "Boolean",
 7         "[object Number]" : "Number",
 8         "[object Object]" : "Object",
 9         "[object Undefined]" : "Undefined"
10     };
11     function MyTypeOf(obj) {
12         if (obj === null) {
13             return "null";
14         }
15         var res = Object.prototype.toString.call(obj);//使用 Object 原型链上的 toString 方法
16         return allType[res];
17     }
18 
19     function myTypeOf(obj) {
20 
21         var type = typeof (obj);
22         if (obj === null) {
23             return "null";
24         } else if (type === "object") {
25             var res = Object.prototype.toString.call(obj);//使用 Object 原型链上的 toString 方法
26             return allType[res];
27         }else {
28             return type
29         }
30 
31     }
32 
33     var a = [ 1, 2, 3 ];
34     var b = "aa";
35     var c = function() {
36     };
37     var d = true;
38     var e = 1;
39     var f = {};
40     var g = undefined;
41     var h = null;
42 
43     console.log(MyTypeOf(a));
44     console.log(MyTypeOf(b));
45     console.log(MyTypeOf(c));
46     console.log(MyTypeOf(d));
47     console.log(MyTypeOf(e));
48     console.log(MyTypeOf(f));
49     console.log(MyTypeOf(g));
50     console.log(MyTypeOf(h));
51     console.log("******************************************")
52     console.log(typeof (a));//object Array失败
53     console.log(typeof (b));//string String 成功
54     console.log(typeof (c));//function function 成功
55     console.log(typeof (d));//boolean  boolean 成功
56     console.log(typeof (e));//number  number 成功
57     console.log(typeof (f));//object  object 成功
58     console.log(typeof (g));//undefined undefined 成功
59     console.log(typeof (h));//object  null 失败
60     console.log("******************************************");
61     console.log(myTypeOf(a));
62     console.log(myTypeOf(b));
63     console.log(myTypeOf(c));
64     console.log(myTypeOf(d));
65     console.log(myTypeOf(e));
66     console.log(myTypeOf(f));
67     console.log(myTypeOf(g));
68     console.log(myTypeOf(h));
69 </script>
复制代码

myTypeOf 函数 可以实现 判断对象的类型;这里使用了原型链上的toString的方法:Object.prototype.toString.call(obj);来实现类型的判断

myTypeOf和 MyTypeOf 实现的功能是一样的;myTypeOf略有优化

 

我从来不相信什么懒洋洋的自由。我向往的自由是通过勤奋和努力实现的更广阔的人生。 我要做一个自由又自律的人,靠势必实现的决心认真地活着。

来源:https://www.cnblogs.com/lixiuming521125/p/10977791.html

相关教程