所以我在读一本关于 JS 的书,上面写着如果你写
var x = 20;
console.log(x);
Run Code Online (Sandbox Code Playgroud)
然后 Javascript 将首先将 x 隐式转换为字符串,然后打印它。Javascript 不能只在控制台上打印数字吗?
这本书不太对。除非您故意与字符串连接,否则控制台通常会按原样记录参数。数字将被记录为数字,字符串将被记录为字符串,对象将被记录为(可扩展的、可导航的)对象,等等。
console.log(20);
console.log('20');
Run Code Online (Sandbox Code Playgroud)
结果是
您需要一双慧眼才能注意到它,但记录的数字与字符串的显示方式截然不同;控制台尚未将所有内容转换为字符串。
另一方面,如果你做了一些事情确实涉及预先将表达式强制转换为字符串,例如:
console.log('Value is: ' + someValue);
Run Code Online (Sandbox Code Playgroud)
这将导致someValue
无论其类型如何,都首先被强制转换为字符串。但这不是因为控制台,而是因为+
在将结果作为参数传递给控制台之前将表达式连接在一起。
归档时间: |
|
查看次数: |
55 次 |
最近记录: |