parseInt()详解

var a=[“1”, “2”, “3”, “4”,“5”,6,7,8,9,10,11,12,13,14,15]; a.map(parseInt);
(map方法具体可百度)
答案是: [1,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,9,11,13,15,17,19];

定义和用法
parseInt(string, radix) 函数可解析一个字符串,并返回一个整数。
当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
当忽略参数 radix , JavaScript 默认数字的基数如下:

如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

注: radix表示要解析的数字的基数。该值介于 2 ~ 36 之间。

string=11111 是五位数 也就是五个要被转换的数
radix=2 是 要转换的数的基数 也就是 幂函数的底数
然后 所转换的数字 是每一位的数 在底数下的 幂函数的 计算和 所得

幂函数的底数是 radix 幂函数的指数是数字算在的位数-1
然后 幂函数 乘 该位置的数做因数 所得的 所有数字 之和 就是 结果
也就是
parseInt(“11111”,2)=31
12^4
+1
2^3
+12^2
+1
2^1
+12^0 =16+8+4+2+1=31
注:当位数的数字>=radix时 从当前位开始 之后的 所有数字 不参与计算的 且不计入 总的指数
即:parseInt(“435”,5) =23
4
5^ 1
+35^0=20+3=23
parseInt(“453”,5)=4
4
5^0 =31
parseInt(“434”,5)=119
45^2
+3
5^1
+4*5^0 =100+15+4=119

注: 当string的第一位的 数字 >= radix 是 返回的值 是NAN
即:parseInt(“21”,2)=NAN parseInt(“31”,2)=NAN

注:当radix 为 空或者 为0时 默认的 基数 也就是 幂函数的底数是 10

parseInt(“434”,10)=parseInt(“434”)=parseInt(“434”,0)=434

注:当第一位数为0x时
parseInt(“0x10”,17)=0
parseInt(“0x10”,16)=16
parseInt(“0x10”,10)=0
parseInt(“0x10”)=16
parseInt(“0x10”,0)=16

注:当string中出现 16进制的 字母 也就是 a b c d e f 时
radix =0 或者 16 时 是按照 16进制 参与计算的
其余的 radix 时 都不参与计算
即:
parseInt(“0f”)=0
parseInt(“1f”)=1
parseInt(“2f”)=2

parseInt(“0f”,0)=0
parseInt(“1f”,0)=1
parseInt(“2f”,0)=2

parseInt(“0f”,1)=NaN
parseInt(“1f”,1)=NaN
parseInt(“2f”,1)=NaN

parseInt(“0f”,16)=0+15=15
parseInt(“1f”,16)=16+15=31
parseInt(“2f”,16)=32+15=47

parseInt(“0f”,5)=0
parseInt(“1f”,5)=1
parseInt(“3f”,5)=2

parseInt(“0f1”,5)=0
parseInt(“1f1”,5)=1
parseInt(“3f1”,5)=3

parseInt(“0f1”,16)=240+1=241
parseInt(“1f1”,16)=256+240+1=497
parseInt(“3f1”,16)=768+240+1=1009

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值