关于toString,valueOf,constructor,typeof,instanceof的值的总结

      最近忙于找房子,同时私人感情问题,所以这篇文章有点强差人意,没有之前那样的详细讲解,请原谅我的不敬业。不过写完这篇基础文章过后,以后大概会写一些实际应用的例子,例如相册的制作,HTML5小游戏的制作,还有本人最近在学习Node.js服务器的开发,也希望多分享新技术的开发心得。

      关于js里面的几个方法,对于不同类型的变量,得出的结果往往有点混乱,所以今天就写了一个简单的测试脚本,输出一下每个函数对于各种不同类型的变量输出的结果。这次就不做详细分析了,大家可以结合结果做一下总结,有些特殊情况可能也总结得不尽完善,欢迎大家补充宝贵意见。直接贴出测试代码:

 1 //数字
 2 var n = 123;
 3 //字符串
 4 var s = "hello world!";
 5 //json对象
 6 var o = {x:10, y:20};
 7 //数组
 8 var r = [0, 1, 2, 3];
 9 //函数
10 var f = function (x, y) {
11     this.x = x;
12     this.y = y;
13 }
14 var point = new f(10, 20);
15 var none = undefined; //null和undefined没有下面这些方法。 但可以通过String(none)得到null或者undefined值
16 //toString()的值,
17 console.log(n.toString());//为数字的字符串表示
18 console.log(s.toString());//为字符串自身
19 console.log(o.toString());//[object Object]
20 console.log(r.toString());//相当于r.join(','),用逗号分隔
21 console.log(f.toString());//函数的定义方式
22 console.log(point.toString());//[object Object]
23 console.log(String(none));//undefined
24 //valueOf()的值
25 console.log(n.valueOf());//数字自身
26 console.log(s.valueOf());//字符串自身
27 console.log(o.valueOf());//json对象自身
28 console.log(r.valueOf());//数组自身
29 console.log(f.valueOf());//函数体
30 console.log(point.valueOf());//一个f实例化对象
31 //constructor的值
32 console.log(n.constructor == Number);//true
33 console.log(s.constructor == String);//true
34 console.log(o.constructor == Object);//true
35 console.log(r.constructor == Array);//true
36 console.log(f.constructor == Function);//true
37 console.log(point.constructor == f);//true
38 console.log(point.constructor == Object);//flase
39 //typeof
40 console.log(typeof n);//number
41 console.log(typeof s);//string
42 console.log(typeof o);//object
43 console.log(typeof r);//object
44 console.log(typeof f);//function
45 console.log(typeof point);//object
46 console.log(typeof none);//undefined
47 //instanceof
48 console.log(n instanceof Number);//false
49 console.log(n instanceof Object);//false
50 console.log(s instanceof String);//false
51 console.log(s instanceof Object);//false
52 console.log(o instanceof Object);//true
53 console.log(r instanceof Array);//true
54 console.log(r instanceof Object);//true
55 console.log(f instanceof Function);//true
56 console.log(f instanceof Object);//true
57 console.log(point instanceof Function);//false
58 console.log(point instanceof Object);//true
59 console.log(Object instanceof Function);//true
60 console.log(Function instanceof Object);//true
原文地址:https://www.cnblogs.com/avicha/p/2544330.html