JavaScript是一种动态类型语言(dynamically typed language)。
就在刚刚之前对于 String
和 Number
因为 运算符 相互转换这件事还是懵的状态。
在读 MDN 文档时突然发现,-
号是直接用于数值计算的:1
2'12' + 1; // '121' String
'12' - 1; // 11 Number
这是因为 String
之间的累加只有 +
号吧,没见过 -
号的啊。1
2'we are' + ' supermen.'; // we are supermen.
'we are' - ' supermen.'; // NaN
所以,我假装悟透了。浏览器是不是先识别的 运算符,根据 运算符 的类型再决定走哪项运算程序。因为 +
号很多数据类型(string,number…)都在用,所以需要判断加号左右两边的数据类型,再决定运算程序。而 -
貌似只用于数值运算,所以直接将 -
号两侧的直接Number(data)。除了 +
需要去定两侧数据类型外,其他 运算符 号是不是不需要呢?这个需要验证一下。
这个还是需要计算机基础,理解起来会比较快
数据类型的转换(Data type conversion)
parseInt()
和 parseFloat()
parseInt
舍弃小数点后的浮点数,调用时最好加上进制参数。parseFloat
函数解析一个字符串参数并返回一个浮点数。
将字符串转换为数字的另一种方法是使用 单目加法运算符。1
(+"1.1") + (+"1.1"); // 2.2