gpt4 book ai didi

javascript - Javascript 中字符串原语和字符串包装对象之间的区别

转载 作者:行者123 更新时间:2023-12-02 16:03:20 24 4
gpt4 key购买 nike

我很困惑 wrapper objects for primitives 是什么? 。例如,字符串原语和使用字符串包装对象创建的字符串。

var a = "aaaa";
var b = new String("bbbb");
console.log(a.toUpperCase()); // AAAA
console.log(b.toUpperCase()); // BBBB
console.log(typeof a); // string
console.log(typeof b); // object

两者都可以访问 String.prototype方法,并且看起来就像字符串文字一样。但它不是一个字符串,而是一个对象。 a 之间的实际区别是什么和b ?为什么我要使用new String()创建一个字符串?

最佳答案

原始字符串不是对象。对象字符串就是一个对象。

基本上,这意味着:

  • 对象字符串通过引用进行比较,而不是通过它们包含的字符串进行比较

    "aaa" === "aaa";                         // true
    new String("aaa") === new String("aaa"); // false
  • 对象字符串可以存储属性。

    function addProperty(o) {
    o.foo = 'bar'; // Set a property
    return o.foo; // Retrieve the value
    }
    addProperty("aaa"); // undefined
    addProperty(new String("aaa")); // "bar"

关于javascript - Javascript 中字符串原语和字符串包装对象之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30984463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com