为了账号安全,请及时绑定邮箱和手机立即绑定

JS中 var obj = new (String);怎么理解?

JS中 var obj = new (String);怎么理解?

紫衣仙女 2019-02-14 18:19:35
如题所示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


https://img1.sycdn.imooc.com//5c66490b0001413205710048.jpg


第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"

https://img1.sycdn.imooc.com//5c66490e0001ccb005680063.jpg

查看完整回答
反对 回复 2019-02-15
  • 1 回答
  • 0 关注
  • 597 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信