这两个字符串的区别(JavaScript)

Dea*_*ool 6 html javascript

我试图以两种方式创建带有值的字符串数据类型变量

  1. 作为字符串文字
  2. 使用新关键字

但在我看来,这两者在console.log 上的表示方式不同。有人能告诉我第二种方式是否不返回字符串或者它有什么不同吗?

var str1 = "abc";
var str2 = new String("def");
console.log(str1);
console.log(str2);
Run Code Online (Sandbox Code Playgroud)

预期的:

abc, 定义

输出:

在此处输入图片说明

xMa*_*ank 9

JavaScript 有两个主要的类型类别,原始类型和对象。

typeof new String(); // "object"
typeof '';           // "string"
Run Code Online (Sandbox Code Playgroud)

对于将原始值分配给变量的语句,例如:

var str1 = "Hi";
Run Code Online (Sandbox Code Playgroud)

JavaScript 将使用以下方法在内部创建变量:

String("Hi")
Run Code Online (Sandbox Code Playgroud)

使用 new 关键字的工作方式不同,而是返回一个对象。