3 个回答

第一个是 对象构造函数
第二个是 函数调用返回一个空字符串
第三个通过 new 构建了一个字符串对象

  1. String 是个函数,你在 2、3 里也是那么用的
  2. 没有入参,函数返回是 "" 空串
  3. new 一个对象

第一个不知道。
打印出来看看,是个函数哎。
image.png

第二个 String() 是个函数,String() 函数把对象的值转换为字符串。
String() 相当于是把空对象转成了空字符串,typeof 空字符串,输出 string
image.png

第三个 new String() 是调用构造函数创建实例对象,而且是个空的String对象,typeof 空对象,输出 object
image.png

let a = 'hello';
let b = String('hello');
let c = new String('hello');
a、b是基本类型,c是引用类型。

如有错误请指正哈

--手动分割线----现在是2021-02-06--
对于第一个输出
image.png
我猛地一看总感觉不好理解,但是换成这样:
image.png
是不是瞬间感觉简单了。。
我们可以知道,String、a 都是函数。
最近在看《JavaScript高级程序设计》,提到:
所有对象都具有 toLocaleString()、toString()和 valueOf()方法。
拿数组来说
image.png
image.png

然后类似的:函数也是对象呀!那你console.log(一个函数),和console.log(一个数组),都会隐式的调用toString()方法咯!
不同的是:调用数组的 toString()方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。而函数的 toString 方法会返回一个表示函数源代码的字符串。具体来说,包括 function关键字,形参列表,大括号,以及函数体中的内容。
image.png

over。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题