【发布时间】:2020-09-07 13:39:28
【问题描述】:
这个问题是基于上一个问题:
Difference in these 2 Strings (JavaScript)
人们回答说通过两种不同的方式创建字符串是有区别的:
- String Literal 创建字符串 (
var a = "abc") -
new关键字创建字符串对象,我假设它是一种对象(var b = new String("def"))
现在,typeof 在第一种情况下将返回 字符串。在第二种情况下,它将返回 Object。我很好,开发它的人可能有某种 JS 引擎的工作方式。
但是,那么,在下面的例子中,为什么我在最后一行得到的答案是abcdef。现在,这也应该安慰[object][object],如上一行。现在我真的很困惑,new String 要么是创建一个字符串,要么是对象还是什么?只是不一致!
谁能帮我解释一下?
var obj1 = new Object({name: "Peter"});
var obj2 = new Object({age: 29});
var str1 = new String("abc");
var str2 = new String("def");
console.log(obj1);
console.log(obj2);
console.log(str1);
console.log(str2);
console.log(obj1 + obj2);
console.log(str1 + str2);
【问题讨论】:
标签: javascript html