当 String() 和运算符 new 一起作为构造函数使用时,它返回一个新创建的 String 对象,存放的是字符串 s 或 s 的字符串表示。当不用 new 运算符调用 String() 时,它只把 s 转换成原始的字符串,并返回转换后的值。
var s0 = 'hello';
var s1 = new String(s0);
var s2 = String(s0);
console.log(s1 === s2); // false
console.log(s1 === s0); // false
console.log(s2 === s0); // true
s1.foo = 'bar';
s2.foo = 'bar';
console.log(s1.foo); // bar
console.log(s2.foo); // undefined