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

高手,您好:小弟今天听JavaScript的视频授课,得到了下面一个代码现场,如图片一:希望高手点拨:图片中画红色方框的代码,为什么会有对应的画红色方框的运行效果?按照逻... 高手,您好: 小弟今天听JavaScript的视频授课,得到了下面一个代码现场,如图片一: 希望高手点拨: 图片中画红色方框的代码,为什么会有对应的画红色方框的运行效果? 按照逻辑来说,图片中的代码,parseInt的第一个参数32及032,应该被解析成10进制数32。之后,在第二个参数的作用下,被转化为2进制数。然后进行输出,32的二进制应该是100000呀? 并且,图片中的画红色方框的代码,0x32,这个数字,应该被解析成16进制的整数,32.之后转化为2进制的整数应该是110010呀? 为什么32的转化结果为NaN?032的转化结果为0?0x32的转化结果也是0? 希望得到高手点拨!! 感谢高手的过目!! 小弟,在线等。 展开
 我来答
liup1
2018-08-05 · TA获得超过1261个赞
知道小有建树答主
回答量:741
采纳率:80%
帮助的人:386万
展开全部

以下是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()函数的意义而已

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式