"-6ren">
gpt4 book ai didi

javascript - 对字符串使用 toString 方法有什么用处吗?

转载 作者:行者123 更新时间:2023-11-28 15:14:41 24 4
gpt4 key购买 nike

我无法弄清楚 toString 方法在字符串上使用时如何可能有任何用处。字符串已经是字符串,并且就其本质而言,它返回字符串的值。

这个...

console.log("Hello"); // => "Hello"
console.log(typeof "Hello"); // => string

看起来和这个一模一样...

console.log("Hello".toString()); // => "Hello"
console.log(typeof "Hello".toString()); // => string

如果toString将某些内容转换为字符串并将其值作为字符串返回,而字符串是字符串并返回字符串的值,我只能得出结论,该方法完全没有意义。我错过了什么吗?

注意:“JavaScript 中的字符串文字和 String 对象有什么区别?”“在字符串上使用 toString 方法有什么用处吗?”> 显然不是同一个问题,所以我认为这不应被视为重复。

最佳答案

可能存在误会。

字符串是原始值,也就是说,它们不是对象。因此他们没有方法。

但是,一些原始值可以包装在类似的对象中。这是 bool 值、数字和字符串的情况。

当您尝试将这些原始值之一用作对象时,例如调用方法时,会发生以下情况:

  1. 创建一个对象包装器(在本例中为字符串对象)
  2. 在该对象中读取/写入该属性
  3. 任何地方都没有存储对该对象的引用,因此它通常会被垃圾收集

因此,是的,在字符串基元上使用 toString 方法通常是无用的,因为它只是在底层将其转换为对象字符串,并且该方法将字符串对象转换回字符串基元.

但是,当您有字符串对象时,情况并非如此,因为您可能希望将其转换为字符串基元:

var obj = new String('hello');
typeof obj; // 'object'
var str = obj.toString();
typeof str; // 'string'

在字符串基元上使用 toString 的情况是当您将其替换为自定义函数时(不推荐):

String.prototype.toString = function() { return '[' + this + ']' };
'hello'.toString(); // "[hello]"

关于javascript - 对字符串使用 toString 方法有什么用处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34602459/

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