你不知道的 JavaScript 系列中, 23 - 值类型

将值从一种类型转换为另一种类型通常称为类型转换,这是显式的情况;隐式的情况称为强制类型转换。

JavaScript 中的强制类型转换总是返回标量基本类型值,如字 符串、数字和布尔值

们能够从代码中看出哪些地方是显式强制类型转换,而隐式强制类型转换则不那么明显,通常是某些操作产生的副作用。 例如:

var a = 42;
var b = a + ""; // 隐式强制类型转换
var c = String( a ); // 显式强制类型转换

对变量 b 而言,强制类型转换是隐式的;由于 + 运算符的其中一个操作数是字符串,所以 是字符串拼接操作,结果是数字 42 被强制类型转换为相应的字符串 "42"。而 String(..) 则是将 a 显式强制类型转换为字符串。

从技术角度来说,除了字面上的差别以外,二者在行为特征上也有一些细微 的差别,后续详细介绍