猿问

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

如题所示


let obj1 = new (String);

console.log(obj1);

console.log(typeof obj1);

紫衣仙女
浏览 601回答 1
1回答

临摹微笑

这是一道非常好的题目,强迫症发作写得有点详细(啰嗦)了(尬一、基础理解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)//nothingconsole.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"
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答