请教JavaScript高手一个“parseInt()函数的用法”。

高手,您好: 小弟今天听JavaScript的视频授课,得到了下面一个代码现场,如图片一: 希望高手点拨: 图片中画红色方框的代码,为什么会有对应的画红色方框的运行效果? 按照逻辑来说,图片中的代码,parseInt的第一个参数32及032,应该被解析成10进制数32。之后,在第二个参数的作用下,被转化为2进制数。然后进行输出,32的二进制应该是100000呀? 并且,图片中的画红色方框的代码,0x32,这个数字,应该被解析成16进制的整数,32.之后转化为2进制的整数应该是110010呀? 为什么32的转化结果为NaN?032的转化结果为0?0x32的转化结果也是0? 希望得到高手点拨!! 感谢高手的过目!! 小弟,在线等。

以下是w3school的parseInt()解释原文:

parseInt(string, radix)

参数        描述

string    必需。要被解析的字符串。    

radix    可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。

如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。  

可见,parseInt()含有两个参数的时候,不是将string转化为radix的形式。radix的作用是告诉parseInt中string的形式。

所以,parseInt('32',2)的意思是32是一个2进制的数字,但是2进制数字不可能以3开头,因此解析结果是NaN。parseInt('032',2)和parseInt('0x32',2)中string都是以0开头,符合2进制特点,但是因为后面的数字不是二进制数字,所以解析结果最后是0

你理解错了parseInt()函数的意义而已

温馨提示:答案为网友推荐,仅供参考