今天收到了一个bug,大致内容如下:
“
ダウンロード期限、回収期限を2日後の9時に設定すると
翌日の24時に変わってしまう。
・一覧表示は設定した値のまま
・詳細表示が変わってしまう
・
8時と9時を指定したときだけ発生する
”
打开页面,搜了一下代码,感觉很是奇怪。真的只有8和9出现这种问题。
google了一下,问题出在 parseInt 方法
parseInt 方法
返回由字符串转换得到的整数。
parseInt(numString, [radix])
参数
numString
必选项。要转换为数字的字符串。
radix
可选项。在 2 和 36 之间的表示 numString 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。
说明
parseInt 方法返回与保存在 numString 中的数字值相等的整数。如果 numString 的前缀不能解释为整数,则返回 NaN(而不是数字)。
parseInt("abc") // 返回 NaN。
parseInt("12abc") // 返回 12。
可以用 isNaN 方法检测 NaN。
所以,当没有设置第二个参数的时候,就会出现错误。
这时,午夜场告诉我之前客户提了一个「コード検証」報告書(JavaScript)20091105版,其中就有提到关于“
parseInt_miss_radix”一项。今天才知道是怎么回事。
有时间一定要把报告中的每一项都细细学习一下。
分享到:
相关推荐
`parseInt()`函数的基本用法是接收两个参数:要解析的字符串和可选的基数(radix)。基数指定了字符串表示数字的进制,范围从2到36。如果不提供基数,则`parseInt()`会尝试根据字符串的开头来判断其进制。默认情况下...
这就是为什么在某些情况下,`parseInt("08")`和`parseInt("09")`会返回0的原因。 值得注意的是,这个行为并不是所有浏览器都一致。像Chrome和Firefox这样的现代浏览器通常不会尝试将以"0"开头的字符串解析为八进制...
JavaScript中的`parseInt()`和`Number()`函数都是用来将非数字的字符串转换成数值类型,但它们之间存在一些关键的区别。本文将深入探讨这两个函数的工作原理和应用场景。 `parseInt()`函数主要用于将一个字符串解析...
从很热门的实例parseInt(“09”)==0说起。parseInt(number,type)这个函数后面如果不跟第2个参数来表示进制的话,默认是10进制。比如说parseInt(“010”,10)就是10进制的结果:10,parseInt(“010”,2)就是2进制的...
其中,Number()、parseInt()、parseFloat() 是三个常用的转换类型函数,每个函数都有其独特的特性和处理方式。 一、Number() 函数 Number() 函数是一个强制类型转换函数,它可以将其他数据类型转换为数字类型。...
### JavaScript中的`parseInt`函数分析 #### 一、引言 在JavaScript编程中,`parseInt`函数是一个常用且重要的函数,用于...总之,虽然`parseInt`功能强大且实用,但在使用时仍需谨慎,以确保代码的健壮性和准确性。
Map 和 parseInt 问题.md
### 前端面试中的map和parseInt函数分析能力 前端开发中,遇到需求或代码问题能够高效地进行分析与解决是前端程序员的核心技能之一。这份面试题文档主要考察了对`map`和`parseInt`函数的理解和应用,以及对...
变量c通过parseInt("09/08/2009")得到值0,因为解析到字符'9'时,解析停止,因为'9'不是有效的八进制数。在另一个例子中,parseInt("0119/08/2009")解析后的值为9,这是因为在八进制解析中,"011"能够被解析为八进制...
数字.js 更严格的parseInt和parseFloat 。用法 numero . parseInt ( 42 ) ; // 42numero . parseInt ( '42' ) ; // 42numero . parseInt ( '42 ' ) ; // 42numero . parseInt ( 3.14 ) ; // nullnumero . parseInt ...
在JavaScript中,不提供自动识别二进制、八进制和十六进制字符串的功能,因此`parseInt`的基数参数尤为重要。例如,前导`0`在JavaScript中默认不会被视为八进制表示,除非明确指定基数为8。 2. **解析规则**:`...
- **负数和小数点**:`parseInt()`不支持负数或小数点后的数字转换,因此`parseInt("-123")`和`parseInt("123.45")`都将返回`NaN`。 - **国际化支持**:`parseInt()`不受当前语言环境的影响,总是按照特定规则解析...
综上所述,`parseInt`和`Number`函数虽然都能将字符串转换为数字,但它们的处理方式和适用场景存在明显的差异。开发者在选择使用哪个函数时,应该根据实际的需求来决定。例如,在需要精确控制数字的进制或确保一致性...
现在,让我们来详细说明JavaScript中的parseInt("08")和parseInt("09")返回0的原因及解决方法。 首先,正如上文所述,当parseInt()函数在接收到"0"开头的字符串时,会尝试按照八进制进行解析。由于八进制系统只使用...
在JavaScript中,`parseInt`和`parseFloat`是两个非常重要的函数,用于将字符串转换为数值类型。它们在处理非数字字符串时,具有不同的行为和特点,对于开发人员来说理解它们的区别至关重要。 `parseInt`函数主要...
这就是为什么parseInt("08")返回0的原因,因为"08"不是一个有效的八进制数。 为了避免这类问题,作者建议明确指定parseInt函数的第二个参数,即基数。例如,要将"AF"解析为十六进制数,可以使用parseInt("AF", 16)...
我们经常用ParseInt函数转换字符串为int数值,ParseInt函数有两个参数可以设置,其中第二个参数可以缺省。 ParseInt(“字符串”,使用的进制) var num1=ParseInt(“10”,2)//2 var num1=ParseInt(“10”,8)//8 var ...
### JavaScript `parseInt()` 函数的进制转换注意事项 #### 概述 `parseInt()` 是 JavaScript 中一个非常常用的方法,主要用于将字符串转换成整数。它接受两个参数:第一个参数是要转换的字符串,第二个参数则是该...