49

在 JavaScript 中,我可以通过以下方式声明一个字符串;

var a = "Hello World";
var b = new String("Hello World");

但 a 不是 String 的实例...

console.log(a instanceof String); //false;
console.log(b instanceof String); //true;

那么如何找到instanceof字符串文字的类型或“”?

可以强制 JavaScriptnew String()为每个字符串文字创建一个吗?

4

3 回答 3

103

使用typeof "foo" === "string"而不是instanceof.

于 2013-05-28T12:29:36.240 回答
10

改为使用typeof并仅比较结果字符串。有关详细信息,请参阅文档

于 2013-05-28T12:29:08.513 回答
4

无需编写new String()即可创建新字符串。当我们编写var x = 'test';语句时,它会将x原始数据类型创建为字符串。我们不能x像使用对象字面量那样将自定义属性附加到 this 上。IE。x.custom = 'abc'; x.custom将给出未定义的值。因此,根据我们的需要,我们需要创建对象。将使用Object 而不是字符串new String()创建一个对象。typeof()我们可以为这个对象添加自定义属性。

于 2013-05-28T12:52:30.377 回答