在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()
吗?
答案 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创建一个对象,而不是字符串。我们可以为此对象添加自定义属性。