首页 > 解决方案 > Javascript 是否将数字和其他数据类型转换为字符串以在控制台中打印?

问题描述

所以我在读一本关于 JS 的书,它说如果你写

var x = 20;
console.log(x);

然后 Javascript 将首先将 x 隐式转换为字符串,然后打印它。Javascript不能只在控制台上打印数字吗?

标签: javascript

解决方案


书不太对。除非您故意与字符串连接,否则控制台通常会按原样记录参数。数字将被记录为数字,字符串将被记录为字符串,对象将被记录为(可扩展,可导航)对象,等等。

console.log(20);
console.log('20');

结果是

在此处输入图像描述

您需要睁大眼睛才能注意到它,但记录的数字与字符串的显示方式截然不同;控制台尚未将所有内容转换为字符串。

另一方面,如果你做的事情确实涉及到预先将表达式强制转换为字符串,例如:

console.log('Value is: ' + someValue);

导致someValue无论其类型如何,都首先被强制转换为字符串。但这不是因为控制台,而是因为+在将结果作为参数传递给控制台之前将表达式连接在一起。


推荐阅读