有区别吗?字符串2会继承不同的对象原型吗?
ID LINKID
A B
C D
E F
由于
答案 0 :(得分:4)
var s1 = 1234 + '';
创建一个字符串文字。这是一个javascript语言原语。
var s2 = String(1234);
String()函数也返回一个原始字符串文字。 s2将具有与s1相同的成员,因为它们都是相同的类型。
然而
var s3 = new String("1234");
将创建String类型的对象而不是原始字符串文字。这确实有不同的成员,并且是object类型。
答案 1 :(得分:2)
同样的事情!
var s1 = 1234 + '';
var s2 = String(1234);
typeof s1 //string
typeof s2 //string
答案 2 :(得分:1)
两者的行为方式相同。
此外,这里有关于字符串原语与对象的一个很好的解释:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String
字符串基元和字符串对象之间的区别
[...]字符串文字(用双引号或单引号表示)和非构造函数上下文中的String调用返回的字符串(即不使用new关键字)是原始字符串。 JavaScript自动将原语转换为String对象,因此可以将String对象方法用于原始字符串。 [...]
答案 3 :(得分:0)
Javascript允许您将原始值视为对象。它是通过对基元进行原始强制执行来实现的。这就是为什么,即使基元没有属性,这样的东西也很好:
"abcde".substr(1,3); //bcd
true.valueOf(); //true