在很多资料里,都写到javascript中的一元+运算符在数据类型转换方面的作用与Number()函数是相同的。
使用Number()时,如下代码
Number(020);
将返回 20,
但是在控制台环境写javascript:
+020
返回的确实‘16’
经过多次试验,发现在+运算符后紧跟0再跟一个数值,大多数时候返回的都不是这个数值,这是为什么呢?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
0开头 八进制
0x开头 十六进制
Number()函数进行强制类型转换和parseInt()是不一样的,区别是parseInt逐个解析字符,而Number函数整体转换字符串的类型,另外,Number()会忽略八进制的前导0,而parseInt不会
所以用Number()转换时,只要参数中有一个是非数字,即返回NaN,同时会按10进制转换,不会按8进制转换
如果想指定进制的话,使用pareInt或parseFloat