gpt4 book ai didi

JavaScript 和字符串作为原始值

转载 作者:搜寻专家 更新时间:2023-11-01 04:52:47 24 4
gpt4 key购买 nike

在 JavaScript 中,字符串是原始值。但也是一个 String 对象......原始值是直接放入变量的值。

所以我的问题是:

var d = "foo";

d 是直接包含 foo 还是像其他语言一样包含对字符串对象的引用?

谢谢。

最佳答案

如果我理解正确,d 将包含字符串文字“foo”,而不是对对象的引用。然而,JavaScript 引擎会在必要时有效地将文字转换为 String 的实例,这就是为什么您可以在字符串文字上调用 String.prototype 的方法:

"some string".toUpperCase(); //Method of String.prototype

以下片段来自 MDN可能有助于进一步解释(强调):

String literals (denoted by double or single quotes) and strings returned from String calls in a non-constructor context (i.e., without using the new keyword) are primitive strings. JavaScript automatically converts primitives and String objects, so that it's possible to use String object methods for primitive strings. In contexts where a method is to be invoked on a primitive string or a property lookup occurs, JavaScript will automatically wrap the string primitive and call the method or perform the property lookup.

这一切都在 specification 中进行了详细解释。 ,但这并不容易阅读。我问了一个related question最近(关于为什么可以执行上述操作),因此可能值得阅读(非常)详细的答案。

关于JavaScript 和字符串作为原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9289733/

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