如何在JavaScript中“实例化”原始字符串(字符串文字)

时间:2013-05-28 12:26:03

标签: javascript string instanceof string-literals

在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”字符串文字?

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

3 个答案:

答案 0 :(得分:57)

使用typeof "foo" === "string"代替instanceof.

答案 1 :(得分:5)

使用typeof代替比较结果字符串。有关详细信息,请参阅docs

答案 2 :(得分:2)

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