Number
2015-07-31 20:15
393 查看
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/parseInt
概述
parseInt() 函数将给定的字符串以指定基数(radix/base)解析成为整数。
如果
在没有指定基数,或者基数为 0 的情况下,JavaScript 作如下处理:
如果字符串
如果字符串
如果字符串
如果第一个字符不能被转换成数字,
算术上,
将整型数值以特定基数转换成它的字符串值可以使用
概述
parseInt() 函数将给定的字符串以指定基数(radix/base)解析成为整数。
语法
parseInt(string, radix);
参数
string要被解析的值。如果参数不是一个字符串,则将其转换为字符串。字符串开头的空白符将会被忽略。
radix一个2到36之间的整数值,用于指定转换中采用的基数。比如参数"10"表示使用我们通常使用的十进制数值系统。总是指定该参数可以消除阅读该代码时的困惑并且保证转换结果可预测。当忽略该参数时,不同的实现环境可能产生不同的结果。
描述
parseInt顶级函数,没有与任何对象关联。
parseInt函数将第一个参数(字符串)解析并试图返回一个整数或者
NaN(Not a Number)。如果结果不是
NaN,那么返回值是把第一个参数看作是radix参数指定的进制下的数,然后把它转换成十进制的整数。例如:
radix参数为10 将会把第一个参数看作是一个数的十进制表示,8 对应八进制,16 对应十六进制,等等。基数大于 10 时,用字母表中的字母来表示大于 9 的数字。例如十六进制中,使用 A 到 F。
如果
parseInt遇到了不属于
radix参数所指定的基数中的字符那么该字符和其后的字符都将被忽略。接着返回已经解析的整数部分。
parseInt将截取整数部分。开头和结尾的空白符允许存在,会被忽略。
在没有指定基数,或者基数为 0 的情况下,JavaScript 作如下处理:
如果字符串
string以"0x"或者"0X"开头, 则基数是16 (16进制).
如果字符串
string以"0"开头, 基数是8(八进制)或者10(十进制),那么具体是哪个基数由实现环境决定。ECMAScript 5 规定使用10,但是并不是所有的浏览器都遵循这个规定。因此,永远都要明确给出radix参数的值。
如果字符串
string以其它任何值开头,则基数是10 (十进制)。
如果第一个字符不能被转换成数字,
parseInt返回
NaN。
算术上,
NaN不是任何一个进制下的数。 你可以调用
isNaN来判断
parseInt是否返回
NaN。
NaN参与的数学运算其结果总是
NaN。
将整型数值以特定基数转换成它的字符串值可以使用
intValue.toString(radix).
一个更严格的解析函数
有时采用一个更严格的方法来解析整型值很有用。此时可以使用正则表达式:filterInt = function (value) { if(/^(\-|\+)?([0-9]+|Infinity)$/.test(value)) return Number(value)]注意两个return return NaN; } console.log(filterInt('421')); // 421 console.log(filterInt('-421')); // -421 console.log(filterInt('+421')); // 421 console.log(filterInt('Infinity')); // Infinity console.log(filterInt('421e+0')); // NaN console.log(filterInt('421hop')); // NaN console.log(filterInt('hop1.61803398875')); // NaN console.log(filterInt('1.61803398875')); // NaN
相关文章推荐
- 机房重构----C#中将DataTable类型转化为泛型集合
- 探讨read的返回值的三种情况
- Nginx访问日志管理
- java类的特性
- (easy)LeetCode 217.Contains Duplicate
- HDU 4313 Matrix 树状DP
- 每天一个小知识点19(Javascript对象转换成json的函数)
- BlockingQueue中add,offer,put方法区别
- spark RDD的原理
- HUAS Summer Trainning #3~C
- spark RDD的原理
- 判断链表是否有环及两个链表是否交叉
- cmsis-rtos v1.02支持Mail Queue问题
- 关键字static的作用
- atan与atan2的区别
- git切换分支后不用显示指示push到分支的小技巧
- Concurrency model and Event Loop
- Android之——实现应用卸载功能
- HDU 5328 Problem Killer (2015 Multi-University Training Contest 4 2015多校联合)
- Java面向对象的三大特征