javascript使用parseInt函数时需要注意的一些问题

这个问题大家可能会忽视,我在项目中就遇到了。写了提醒一下大家!!!

在用javascript的parseInt函数时,parseInt("08")或者parseInt("09")返回的居然是0,而parseInt("01")...parseInt("07")都是正确的,一开始很难理解,后来发现出现这个问题的原因是当在前面有"0"时,javascript的debugger会认为这是一个八进制数,而"08"和"09"不是一个合法的八进制数,所以导致了那个问题,但是parseFloat不会存在这个问题。

事实上,parseInt方法有一个可选参数来表示数字的进制,所以这应该不能算是一个bug,只是我们平时没有注意到这种细节问题。那么解决的方法很简单,就是使用parseInt("08",10)或者parseInt("09",10),通知javascript解释器使用十进制来解析就可以了。

时间: 2024-08-28 01:57:00

javascript使用parseInt函数时需要注意的一些问题的相关文章

javascript中parseInt函数的用法

javascript的parseInt函数,大家都知道是干啥的但你知道parseInt("07") 返回多少 ?parseInt("08") 又返回多少 ? 正确答案是parseInt("07") 返回8parseInt("08") 返回0 你知道问题在哪?其实,这个问题可能大家都没想过吧. 用javascript的parseInt函数时,parseInt("08")或者parseInt("09&

JavaScript的parseint()函数

定义和用法 parseInt() 函数可解析一个字符串,并返回一个整数. 语法 parseInt(string, radix) 参数 描述 string 必选项.要转换为数字的字符串. radix 可选.表示要解析的数字的基数.该值介于 2 ~ 36 之间. 如果省略该参数或其值为 0,则数字将以 10 为基础来解析. 如果它以 "0x" 或 "0X" 开头,将以 16 为基数. 如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN. 返回值

javascript之定义函数时 this 和prototype区别

注:原文 http://www.2cto.com/kf/201406/307790.html 这里作为学习,写在这里 在面向对象的方式编写js脚本时,定义实例的方法主要有两种:this.XXX = function()P{ 和 function.prototype.XXX= function(){} function ListCommon2(afirst) { var first=afirst; this.do1=function () { alert("first do"+first

Javascript 函数parseInt()转换时出现bug

这是一个很诡异的事情,今天测试的测出来的.parseInt(1.13*100),实际返回值是112.直接看代码吧 <head> <script type="text/javascript"> function test(){ var thisvalue = 0; thisvalue=yuanToFen($("#inp").val()); alert(thisvalue); } /*元转分*/ function yuanToFen(yuan){

[JavaScript] parseInt() 函数

定义和用法 parseInt() 函数可解析一个字符串,并返回一个整数. 语法 parseInt(string, radix) 参数 描述 string 必需.要被解析的字符串. radix 可选.表示要解析的数字的基数.该值介于 2 ~ 36 之间. 如果省略该参数或其值为 0,则数字将以 10 为基础来解析.如果它以 "0x" 或 "0X" 开头,将以 16 为基数. 如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN. 返回值 返回解

js parseInt()函数中的问题。。

今天在看<javascript 高级程序设计>时, 与我的输出结果不符合, <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <script> document.writeln(parseInt("11",8)); //9 document.wr

javascript中parseInt(),08,09,返回0

javascript中在使用parseInt(08).parseInt(09),进行整数转换的时候,返回值是0 工具/原料 浏览器 文本编辑器 方法/步骤 javascript中在使用parseInt(08).parseInt(09),进行整数转换的时候,返回值是0,而parseInt("01")...parseInt("07")都是正确的,原因是当在前面有"0"时,javascript会认为这是一个八进制数,而"08"和&q

JavaScript 的 parseInt 取整

http://www.neoease.com/javascript-get-integer-via-parseint/ JavaScript 是弱类型语言, 为了保证数值的有效性, 在处理数值的时候, 我们可以对数值字符串进行强行转换. 如 parseInt 取整和 parseFloat 取浮点数. Java 也有 Integer.parseInt() 方法, 但是 JavaScript 的 parseInt 处理方式与 Java 等强整型语言不太一样, 所以经常有人因为对这个方法的使用不当而获

Javascript学习总结-函数-(四)

2.7.     JavaScript函数基础 函数主要用来封装具体的功能代码. 函数是由这样的方式进行声明的:关键字 function.函数名.一组参数,以及置于括号中的待执行代码. 注意:函数的形参是不用声明使用的. 函数的基本语法是这样的: function functionName(arg0, arg1, ... argN) { statements } 例如: function sayHi(sName, sMessage) { alert("Hello " + sName +