parseint(parseint方法的作用)

http://www.itjxue.com  2023-01-25 09:52  来源:未知  点击次数: 

parseint怎么理解

parseInt( ) 的定义:

parseInt() 函数可解析一个字符串,并返回一个整数。

parseInt( ) 的语法:

parseInt ( String s , [ int radix ] )

其中,

参数 String s ,必需,表示要被解析的字符串。

int radix ,可选,表示要解析的数字的基数。

该函数使用第二个参数指定的基数,其值介于 2 ~ 36 之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。

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

parseInt是什么意思

parseInt是用于将字符串根据基数转换成整数。

首先parseInt()函数中可以给定两个参数,第一个是要解析的数,第二个是以多少进制解析。

例如parseInt(‘10’,8)的意思为把一个8进制数10,转换成一个10进制数,最后结果当然为8.

接着我们再看个例子,parseInt(‘100’,8),把一个8进制数100,转换成一个10进制数,最后结果那便是64,记住parseInt把最后结果都是转换成10进制数。

最后再看个例子,parseInt(‘12’,2)把一个二进制数12,转换成一个10进制数,因为二进制数中不存在2,因此解析时仅仅只解析数字1,将二进制的1换成十进制,结果显然就是1.

V8中parseInt函数的源码:【只列出一部分,如需要查看请参见V8中src/conversions-inl.h和src/compiler/js-builtin-reducer.cc】

if (radix == 0) { //如果传入radix是0,则以10进行处理

// Radix detection.

radix = 10;

if (*current == '0') {

++current;

if (current == end) return SignedZero(negative);

if (*current == 'x' || *current == 'X') {

radix = 16;

++current;

if (current == end) return JunkStringValue();

} else {

leading_zero = true;

} else if (radix == 16) { //16进制

if (*current == '0') {

// Allow "0x" prefix.

++current;

if (current == end) return SignedZero(negative);

if (*current == 'x' || *current == 'X') {

++current;

if (current == end) return JunkStringValue();

} else {

leading_zero = true;

if (radix 2 || radix 36) return JunkStringValue(); //radix不在2~36之间的处理

例如解析:

parseInt('0101' , 1) = NaN

parseInt('453' , 2) = NaN因为453不符合二进制数字,所以无法转换出正确的数字

parseint是什么意思

parseInt是将字符串解析成int整数,可解析一个字符串,并返回一个整数,当参数radix的值为0,或没有设置该参数时,parseInt()会根据string来判断数字的基数。 扩展资料 如果string以“0x”开头,parseInt()会把 string 的其余部分解析为十六进制的整数。如果string以0开头,那么ECMAScript v3允许parseInt()的一个实现把其后的字符解析为八进制或十六进制的'数字。如果 string 以1 ~ 9的数字开头,parseInt()将把它解析为十进制的整数。

(责任编辑:IT教学网)

更多

推荐新手入门文章