前面介绍了显式类型转换和隐式类型转换,其实这两种转换只是转换场景不同,本质上都遵守同一套规则。手动类型转换和这两种类型转换完全不同,它是从字符串中提取数字,当操作对象不是字符串类型时,先转换为字符串类型,再进行提取。
JavaScript提供了parseInt()和parseFloat()两个方法来实现手动类型转换。parseInt()用来提取整数,parseFloat()用来提取浮点数(小数)。比如:
这段代码使用parseInt()和parseFloat()分别提取变量str中的整数和浮点数。变量str是一个包含数字和字母的字符串,调用parseInt()后从中提取出整数,故result1输出结果112;调用parseFloat()后从中提取出浮点数,故result2输出结果112.2。
需要注意的是,字符串要求数字字符必须在字符串的前面,否则返回NaN。
比如:
这段代码中变量str包含的数字字符在字符串的后面,因此均返回NaN。
当要求数字字符必须在字符串的前面时,数字字符前面可以有任意多个空格字符。比如: