js 中parseInt(xxx,10) 和 parseInt(xxx)的用法

今天遇到了一个JS中相当奇怪的问题:

对日期字符串2010-08-11 进行字符串截取

var date='2010-08-11 ';

想通过

parseInt(date.substr(5, 2))获取月份值8可是发现返回值总是0;迷惑不解,翻开JS课件,才发现自己真是孤陋寡闻了......

 

现在谈谈parseInt(xxx,[radix])) 和 parseInt(xxx)的用法:

 

parseInt(numStr, [radix])
参数:

numStr 必选项- 要转换为数字的字符串。
radix 可选项。在 2 和 36 之间的表示 numStr所保存数字的进制的值。如果没有提供,则numStr前缀为 '0x' 的字符串被当作十六进制,numStr前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。

例如:

var numStr='07';

parseInt(numStr);//返回7 ok

var numStr='011';

parseInt(numStr);//返回9 奇怪?  正向前面讲述说的原因,当不指定radix 的值,前缀为'0'的字符串按八进制进行处理,所以会返回9

要得到11需要:

parseInt(numStr,[10]);//返回11

 

如果 numString 的前缀不能解释为整数,则返回 NaN(而不是数字)。
如:
parseInt("abc")     // 返回 NaN。

然而:
parseInt("12a1bc")   // 返回 12。

parseInt("018")   // 返回 1。因为前缀为'0’视为八进制,8为不可解析的数,所以返回 1。

parseInt("0x1E")   // 返回 30。

parseInt("0x1G")

由此可见,只要前缀可以解析成数字的就会返回数字 不能解析的部分会自动抛弃。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Java,基本类型和包装类之间可以进行自动装箱和拆箱的操作,即将基本类型转换成对应的包装类,或将包装类转换成对应的基本类型。下面是基本类型和对应的包装类: | 基本类型 | 包装类 | | -------- | ------ | | byte | Byte | | short | Short | | int | Integer| | long | Long | | float | Float | | double | Double | | char | Character | | boolean | Boolean | 基本类型和包装类的转换可以通过以下方式进行: 1. 基本类型转换成包装类: ```java int i = 10; Integer integer = Integer.valueOf(i); // 自动装箱:int -> Integer long l = 100L; Long aLong = Long.valueOf(l); // 自动装箱:long -> Long double d = 3.14; Double aDouble = Double.valueOf(d); // 自动装箱:double -> Double ``` 2. 包装类转换成基本类型: ```java Integer integer = Integer.valueOf(10); int i = integer.intValue(); // 自动拆箱:Integer -> int Long aLong = Long.valueOf(100L); long l = aLong.longValue(); // 自动拆箱:Long -> long Double aDouble = Double.valueOf(3.14); double d = aDouble.doubleValue(); // 自动拆箱:Double -> double ``` 除了自动装箱和自动拆箱,还可以使用包装类的静态方法 parseXXX() 将字符串转换成基本类型或包装类。其XXX 表示对应的基本类型名字,例如 Integer 类型的 parseXXX() 方法为 parseInt()。 ```java String str = "123"; int i = Integer.parseInt(str); // 将字符串转换成 int 类型 String str2 = "3.14"; double d = Double.parseDouble(str2); // 将字符串转换成 double 类型 String str3 = "true"; boolean b = Boolean.parseBoolean(str3); // 将字符串转换成 boolean 类型 ``` 同样,也可以使用包装类的 toString() 方法将基本类型或包装类转换成字符串。 ```java int i = 123; String str = Integer.toString(i); // 将 int 类型转换成字符串 double d = 3.14; String str2 = Double.toString(d); // 将 double 类型转换成字符串 Boolean b = true; String str3 = Boolean.toString(b); // 将 boolean 类型转换成字符串 ``` 对于字符串和基本类型或包装类之间的转换,可以使用包装类的 valueOf() 方法或相应的 parseXXX() 方法。 ```java String str = "123"; int i = Integer.valueOf(str); // 将字符串转换成 int 类型 String str2 = "3.14"; double d = Double.parseDouble(str2); // 将字符串转换成 double 类型 String str3 = "true"; boolean b = Boolean.valueOf(str3); // 将字符串转换成 boolean 类型 int i = 123; String str4 = String.valueOf(i); // 将 int 类型转换成字符串 double d = 3.14; String str5 = String.valueOf(d); // 将 double 类型转换成字符串 Boolean b = true; String str6 = String.valueOf(b); // 将 boolean 类型转换成字符串 ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值