parseInt("010");?它是如何进行计算的,得出的结果

parseInt("010");?它是如何进行计算的,得出的结果

parseInt(string, radix);

如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。

parseInt("010"); //未定:返回 10 或 8;????


parseInt("19",10); //返回 19 (10+9)  ,为什么转换后的数字中间有逗号,是相加呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
提问者 精慕门6555066 2017-08-29 18:50:01

我找到这样的一个答案:

在本例中,我们将使用 parseInt() 来解析不同的字符串:

parseInt("10"); //返回 10 ;                  解析: 如果省略该参数或其值为 0,则数字将以 10 为基础来解析。

                                                                                          1*10(十进制)=10;

parseInt("19",10);              //返回 19 (10+9);         解析: 为0或者2-36之间的整数,用来表示被解析数值的进制。

                                                                                          1*10+9=19;这个进制基数为10;

parseInt("11",2);              //返回 3 (2+1);             解析: 同上,这个进制基数为2;

                                                                                          1*2+1=3;

parseInt("17",8);              //返回 15 (8+7);           解析 :同上;这个进制基数为8;

                                                                                          1*8+7=15;

parseInt("1f",16);              //返回 31 (16+15);        解析 :同上;这个进制基数为16; 

                                                                                          1*16+15=31;f代表十六进制数字15;   


怎么都被占用了呢 2017-08-29 16:42:40

parseInt("19",10);是将将字符串按照10进制解析:9会解析为数值9,1会解析为数值10,两者加起来则是转化后的结果。进制转化过程,可查阅c/c++相关知识

  • 提问者 精慕门6555066 #1
    如果是这样,parseInt("11",2); //返回 3 (2+1),这又怎么理解呢。
    2017-08-29 17:56:09
海纳百川_ 2017-08-29 16:38:12

parseInt("010");这与浏览器的解析机制,有的浏览器会解析为10进制,有的会解析为8进制。这你不用知道怎么计算的,会用就可以了。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师