首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么parseInt('08')给出0,而parseInt('07')给出7

这个问题涉及到JavaScript中的parseInt函数的特殊处理方式。

在JavaScript中,parseInt函数用于将字符串转换为整数。当字符串以0开头时,parseInt函数会将其识别为8进制(octal)数字,而不是10进制数字。因此,parseInt('08')被解析为8进制的08,而8进制的08等于10进制的0。而parseInt('07')被解析为8进制的07,而8进制的07等于10进制的7。

这种情况是由于JavaScript的parseInt函数在处理以0开头的字符串时,会尝试将其解析为8进制数字,导致了parseInt('08')和parseInt('07')的结果不同。如果需要将字符串转换为10进制数字,可以使用Number函数或者在parseInt函数中指定进制为10。

总之,parseInt('08')和parseInt('07')的结果不同,是因为parseInt函数在处理以0开头的字符串时,会尝试将其解析为8进制数字,而8进制的08等于10进制的0,而8进制的07等于10进制的7。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 为什么 JavaScript 的 parseInt(0.0000005) 打印“5”?

    前言 最近开发项目时遇到一个奇怪的问题,parseInt(0.0000005) === 5。正常情况下输出0是正确的,为什么是5呢?我们一起来探讨一下这个问题。 1. 什么时候使用parseInt?...0.05') // 0 parseInt('0.005') // 0 parseInt('0.0005') // 0 parseInt('0.00005') // 0 parseInt('0.000005...: parseInt 只能将字符串的前导部分解释为整数值;它忽略任何不能解释为整数表示法一部分的代码单元,并且没有给出任何此类代码单元被忽略的指示。...parseInt(0.0000005) parseInt('5e-7') // 5 最后,答案将仅返回 5,因为它是直到非字符 e 为止唯一一个数字字符,因此其余的 e-7 将被丢弃。” 4....0 Math.floor(0.0000005); // => 0 5.举一反三 现在,你能解释一下为什么 parseInt(99999999999999999999999999) 等于 1 吗?

    17730

    巧用“搜索”解决自学编程遇到的难题

    然后有一天你意识到你的程序产生了一些很奇怪的结果,但只是在老版本 IE浏览器才出现:你的程序认为 ’2014-10-08’的下一天是’2014-10-01’,不是 ’2014-10-09’。...你设置了一些断点并单步调试代码,你会发现 parseInt看起来坏了:当参数是 ’08’时,在大部分浏览器中你会得到 8,但在 IE中你会得到 0。你发现了这个问题,但你不知道如何修复它。...parseInt解释 为什么老版本 IE的 parseInt会做如此奇怪的事情呢?原因是 parseInt也对十进制之外的数字有效(比如二进制、八进制,以及十六进制)。...如果你不告诉 parseInt你在使用什么进制,parseInt就用它认为昀合理的进制来解析数字,08’看起来像是个 8进制数。...新的浏览器倾向于默认使用 10进制,即使字符串以 0开头,但老版本 IE仍然认为’08’是个 8进制。

    56920

    数据类型

    数据类型 1.数据类型简介 1.1 为什么需要数据类型 在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。...//1.八进制数字序列范围:0~7 var num1 = 07;//对应十进制的7 var num2 = 019;//对应十进制的19 var num3 = 08;//对应十进制的8 //2.十六进制数字序列范围...:0~9以及A~F var num = 0xA; 现阶段我们只需记住,在JS中八进制前面加  0 ,十六进制前面加  0x . 2.数字型范围 JavaScript中数值的最大和最小值 alert(Number.MAX_VALUE...因为加引号的变量会变成字符串 如果变量两侧都有字符串拼接,口诀”引引加加“,删除数字,变量写加中间 2.5 布尔型 Boolean 布尔类型有两个值:true和false,其中true表示真(对),false...('请输入你的年龄'); //1.ParseInt(变量) 可以把字符型的转换为数字型 得到整数 console.log(parseInt(age)); console.log(parseInt('3.14

    1.1K10

    JavaScript 语言精粹笔记3-方法、毒瘤等

    array.join() 对于IE6/7,使用array.join()连接大量字符串的效率确实优于使用+元素运算符。...Unicode 把一对字符视为一个单一的字符, JavaScript 认为一对字符是两个不同的字符。 检测null的方式。...} parseInt 把字符串转化为整数的函数。它遇到非数字时会停止解析,所以parseInt('16')和parseInt('16ton')产生相同的结果。...如果该字符串第一个字符是0,那么该字符串会基于八进制不是十进制来求职。在八进制中,8和9不是数字,所以parseInt('08')和parseInt('09')都产生0作为结果。...但parseInt()可以接受基数,因此parseInt('08',10)结果为8,建议总是加上这个基数参数。 JavaScript 的对象永远不会是真的空对象,因为它们可以送原型链中取得成员属性。

    22510
    领券