关于parseInt(string, radix)方法

概述

依据指定基数 [ 参数 radix 的值],把字符串 [ 参数 string 的值] 解析成整数。

语法

parseInt(string[, radix])

参数说明

  • string:要转换的字符串。如果不是字符串,则会使用ToString隐式地将其转换为字符串。
  • radix:字符串转换的基数,是一个2~36之间的整数。注意:10不是默认值

返回值

  • 十进制整数
  • NaN(一下几种情况会返回NaN)
    • radix的值<2或>36
    • 第一个非空字符不能转换为数字
    • 第一个非空字符不是radix基数范围内的字符

特别说明

radix是undefined、0或未指定时,分以下几种情况考虑:

1.若string是以“0x”或“0X”开头,那么radix被假定为16,即字符串的其余部分会被当成16进制去解析;

parseInt("0x21");             // 33, 16*2 + 1
parseInt("0Xff", 0);          // 255, 16*15 + 15 
parseInt("0xa1", undefined);  // 161, 16*10 + 1 

2.若string是以“0(o)”开头,radix被假定为8(八进制)或10(十进制),具体使用哪一个取决于实现。(ES5之前是八进制,ES5明确表示使用十进制,但是有些环境未实现)。

// firefox79.0 测试结果:使用十进制解析
parseInt("015"); // 15
parseInt("08");  // 8

3.若String是以其他任何值开头,则radix是10(十进制)。

parseInt("500");  // 500
parseInt("404");  // 404
parseInt("101");  // 101

案例解析

parseInt(100, 2);  // 4, 1*2^2
parseInt(15, 2);   // 1, 5不是有效的二进制数,解析到1就停止,1*2^0
parseInt(3, 2);    // NaN, 二进制只有0和1,3不是有效的二进制数

parseInt(027, 8);  // 19, 027先被转换成十进制的字符串"23",再以8位基数将"23"转换为十进制整数,2*8^1 + 3*8^0 = 19
parseInt(0x16, 16); // 34,原理同上
parseInt(0o50, 8);  // 32, 先转换成十进制的字符串"40",再以8位基数,转换为十进制整数32

参考资料:
parseInt-Javascript | MDN
Javascript parseInt()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值