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不符合二进制数字,所以无法转换出正确的数字
2017-09-18
parseInt() 函数可解析一个字符串,并返回一个整数。[1]
parseInt( ) 的语法:
parseInt ( String s , [ int radix ] )[1]
其中,
参数 String s ,必需,表示要被解析的字符串。[1]
int radix ,可选,表示要解析的数字的基数。[1]
该函数使用第二个参数指定的基数,其值介于 2 ~ 36 之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。[1]
如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。[1]
除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值,就好像将该参数和基数10作为参数赋予 parseInt(java.lang.String, int) 方法一样。
JavaScript中的parseInt()简言之,就是将字符串型变量转换成整型int。
Integer这个包装类里面有这个方法Integer.parseInt(String s);
也就是将字符串类型的数字装换为整型的包装类。
比如
String s = “123”;
将这个装换为数字类型的123,即Integer.parseInt(s);得到的结果就是数值类型的123
建议你看一下包装类。还有自动装箱和自动拆箱。
String s = "169";
int i = Integer.parseInt( s );
是不是就是去掉双引号或者是引号啊?得到里面 的整数?