基本包装类型

2019-01-20  本文已影响0人  simon_李玉兵

var n1 = 1var n2 = new Number(1)的区别。
当我们执行 n1 = 1 时,创建一个基本类型的值。
当执行n2 = new Number时,创建一个对象。(包装成一个对象)这样就就可以运行公共的方法,比如toString()、valueOf()等。

内存图


1.png

所以n2可以执行相应的方法。但是发现n1也一样可以执行toString()等方法。
这是因为js有一个自动转换的机制。当我们执行 n1.toString()时,在js内部帮我们生成一个临时的n1包装对象,执行完成后销毁这个对象

var n = 1 n.xxx =2。本来n是一个基本类型,是不存在属性的(所以执行n.xxx = 2应该会报错)。但是执行 n.xxx = 2时,js生成一个临时包装对象,执行完后就被销毁。所以console.log(n.xxx)undefined

new String()和new Boolean()也跟上面一样。

上一篇 下一篇

猜你喜欢

热点阅读