`
angushj
  • 浏览: 58732 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

parseInt(08)问题

 
阅读更多

    对于parseInt("01")到parseInt("07");都能得到正确的结果,但如果是parseInt("08") 或parseInt("09")则返回0。

 

    首先看parseInt语法:parseInt(string, radix);


    其中string为要转换的字符串,radix为二进制,八进制,十六进制或十进制。


    在默认不指定radix时,当以0x开关时,为十六进制;如果以0开关且第二位不为x,则让为是八进制,(因为八进制不能有8,9所以报错返回0)。
   

    所以,在我们用时还是明确指定进位制,以防出错。
   

    如我们平时都用十进制位,我们就 parseInt("08", 10);

 

 

分享到:
评论

相关推荐

    JavaScript中的ParseInt(“08”)和“09”返回0的原因分析及解决办法

    相反,它们会将这些字符串视为十进制数,所以`parseInt("08", 10)`和`parseInt("09", 10)`在这些浏览器中会得到正确的结果。 为了避免因浏览器差异导致的问题,最佳实践是在使用`parseInt()`时始终明确指定基数...

    javascript parseInt 函数分析(转).docx

    - `parseInt("08")` 返回0,因为"08"不是有效的八进制数。 2. **指定基数的重要性**:为了避免上述问题,可以显式地指定基数为10,确保字符串始终被解释为十进制数: - `parseInt("08", 10)` 返回8。 - `...

    js parseInt(08)未指定进位制问题

    标题中提到的问题在于,当调用`parseInt("08")`并且没有明确指定`radix`时,JavaScript会尝试根据字符串的前缀来判断其可能的进制。在默认情况下,`parseInt()`的行为如下: 1. 如果字符串以`0x`开头,那么它被识别...

    javascript parseInt 大改造

    这就是为什么parseInt("08")返回0的原因,因为"08"不是一个有效的八进制数。 为了避免这类问题,作者建议明确指定parseInt函数的第二个参数,即基数。例如,要将"AF"解析为十六进制数,可以使用parseInt("AF", 16)...

    javascript parseInt与Number函数的区别.docx

    parseInt("08", 10); // 返回 8 parseInt("0x10"); // 返回 16 parseInt("123abc", 10); // 返回 123 parseInt("abc123", 10); // 返回 NaN ``` #### 三、Number函数详解 ##### 1. 定义 `Number`函数用于将一个...

    javaScript parseInt字符转化为数字函数使用小结

    parseInt(“10”) 到 以后都能得到正确的结果,但如果是parseInt(“08”) 或parseInt(“09”)则返回0; 首先看parseInt语法:parseInt(string, radix); 如果后面参数没写就以第一个的开头判断其中string为要转换的...

    关于javascript中的parseInt使用技巧

    如果不指定第二个参数,那么它只能正确地转换01到07(即把它们转换成1到7),从08开始,它就会按照“0开头的是八进制数”的规则转换了!正好现在是9月,我随手选的日期,正好暴露了这个问题,我要是在上半年做这个,...

    JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法

    现在,让我们来详细说明JavaScript中的parseInt("08")和parseInt("09")返回0的原因及解决方法。 首先,正如上文所述,当parseInt()函数在接收到"0"开头的字符串时,会尝试按照八进制进行解析。由于八进制系统只使用...

    JS中parseInt()和map()用法分析

    在另一个例子中,parseInt("0119/08/2009")解析后的值为9,这是因为在八进制解析中,"011"能够被解析为八进制数1,后面跟着的"9/08/2009"部分被忽略。 另一个函数map()是数组上的高阶函数,它对数组的每个元素执行...

    js parseInt("08")未指定进位制问题

    今天在做JS关于月份的判断,对于parseInt("01")到parseInt("07");都能得到正确的结果,但如果是parseInt("08")或parseInt("09")则返回0,首先看parseInt语法:parseInt(string, radix);

    javascript parseInt 函数分析(转)

    而`parseInt("08")`和`parseInt("09")`都返回0,因为“08”和“09”不是有效的八进制数。 #### 五、解决方法 为了避免这种误解,可以明确指定字符串的进制,例如使用基数10: ```javascript console.log(parseInt...

    javascript parseInt与Number函数的区别

    比如,当字符串为"08"时,parseInt("08")会因为JavaScript错误地将它解释为八进制数,故而返回0;而Number("08")则正确地返回了十进制数8。如果使用parseInt("08", 10),明确指定了基数为10,那么parseInt会忽略字符...

    js中Number数字数值运算后值不对的解决方法.docx

    例如,对于简单的乘法 `37.5 * 5.5`,结果可能是 `206.08499999999998`,而非预期的 `206.08`。这种现象是由JavaScript浮点数表示机制中的固有缺陷导致的。在JavaScript中,浮点数是用IEEE 754标准实现的,这一标准...

    比较全的js验证,包括(身份证,手机,固话,身份证号与性别、出生日期验证等等)

    if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){ ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08...

    js验证身份证号码的有效方法

    var ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/; if (!ereg.test(idcard)) return Errors[2]; `...

    Javascript中的陷阱大集合【译】

    #### parseInt及其基数问题 `parseInt()`函数用于将字符串转换为整数,但如果忽略了该函数的第二个参数(指定基数),则可能会导致意料之外的结果。根据ECMAScript标准,`parseInt`处理数字的基数遵循以下规则: 1...

    身份证验证HTML源码

    功能如下: ...或者特殊符号等 如果修改功能请修改 js下的passwordstrength.js 2.姓名验证 验证中国人的姓名 ... ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)...

Global site tag (gtag.js) - Google Analytics