美文网首页
基本包装类型

基本包装类型

作者: simon_李玉兵 | 来源:发表于2019-01-20 21:03 被阅读0次

    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()也跟上面一样。

    相关文章

      网友评论

          本文标题:基本包装类型

          本文链接:https://www.haomeiwen.com/subject/sjiwdqtx.html