parseInt 与 parseFloat 的区别?
parseInt将值转换为整数,parseFloat则把值转换为浮点数。
parseInt将从位置0开始遍历字符串至第一个无效字符处停止遍历,返回结果。如parseInt(‘1234b’)将返回1234,检测到b的时候就会停止检测。对于parseInt函数来说小数点也是无效字符。因此传入’22.5’将会返回22。parseInt可以正确检测到字符串中包含的数字字面量。parseInt函数还可以传入第二个参数以指定进制。例如parseInt(‘10’, 10)将返回10,而parseInt(‘10’, 8)将返回8。
值得一提的是,使用parseInt函数转换带有前导0的字符串,应当指定进制。如不指定,会默认返回8进制的值。
parseFloat函数与parseInt函数的相似之处在于都是从位置0开始遍历字符串,但是第一个出现的小数点对parseFloat函数来说是有效字符。当小数点出现二次及以上时,从第二次开始视为无效字符,会返回第二个小数点之前字符的转换结果。
parseFloat函数返回值必然为十进制,因此也无法传入第二个参数以指定进制。字符串的前导0会被忽略。parseFloat函数无法正确检测字符串中的数字字面量。parseFloat(‘0xA’)将会返回NaN。
valueOf 与 toString 的区别?
valueOf偏向于运算,toString偏向于显示。
valueOf方法在有运算(操作符)时优先调用,而将对象用于字符串环境时将自动调用toString方法。进行对象转换时优先调用toStr