关于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

你可能感兴趣的:(Constructor)