是否有任何标准JavaScript API或库将字符串作为String对象返回?

Rom*_*kov 6 javascript string

直到最近,我还没有意识到JavaScript中有两种类型的字符串(和bool和数字):诸如的原语"blah"和诸如的对象new String("blah").

它们以非常"陷阱"的方式不同,其中最大的方式似乎是不同的typeof值("string"vs "object"),但存在许多其他差异,其中一些记录在MDN.

创建String对象没有意义,因为原始字符串也可以正常工作,JSHint甚至将此视为错误.所以我真的想假装String实例甚至不存在,并且只支持我的代码中的原始字符串.

这让我想知道:我可以通过调用一些返回字符串的标准API来获得一个惊喜的String实例吗?或者是否真的可以安全地假设,除非有人通过明确写作搞砸了,否则new String我永远不会看到其中的一个?

ymu*_*tlu 2

这个 github 搜索显示有些人正在使用new String.

这个答案对 String obj 有一个很好的解释:

返回字符串的原生 JavaScript 对象、主要库或 DOM 方法都不会返回 String 对象而不是字符串值。但是,如果您想绝对确定您有一个字符串值而不是 String 对象,您可以按如下方式转换它:

var str = new String("foo");
str = "" + str;
Run Code Online (Sandbox Code Playgroud)