parseInt(08)和parseInt(09)

今天收到了一个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”一项。今天才知道是怎么回事。
有时间一定要把报告中的每一项都细细学习一下。

你可能感兴趣的:(JavaScript,Google)