如题所示let obj1 = new (String);console.log(obj1);console.log(typeof obj1);
1 回答
临摹微笑
TA贡献1982条经验 获得超2个赞
这是一道非常好的题目,强迫症发作写得有点详细(啰嗦)了(尬
一、基础理解
1.区分普通字符串和字符串类型对象
①普通字符串
var str = "foo" 等同于var str = String("foo")
②字符串类型对象
var str = new String("foo")
2.new String() 等同于 new (String)
var strStd = new String()
var strUnq = new (String)
console.log(strStd)
console.log(strUnq)
二者都是经由 new 这个操作符,再结合Sring类型的构造函数生成的。
二、进阶实验
如果还是觉得抽象,我们把初始值分离出来,再写2段代码跑一遍,对比下结果就基本明白了!
第1段:没初始值
var foo = String()
var bar = new String()
console.log(foo)//nothing
console.log(bar)//a new String object
第2段:有初始值
var foo = String("foo")
var bar = new String("bar")
console.log(foo)//"foo"
console.log(bar)//a new String Object with primitive value "bar"
添加回答
举报
0/150
提交
取消