如何强制基数10输入数字?

时间:2018-05-03 11:53:55

标签: javascript

JavaScript支持不同的数字基础。基础2,8,10和16很容易写成:

Number(0b10) //2
Number(0o10) //8
Number(10)   //10
Number(0x10) //16

现在我想从0000-9999输入一个4位数字,问题是在JavaScript中不仅0oXX是八进制,还有前导0的数字(如果可以的话)。有没有办法确定“真正的”基础10原始输入,没有使用字符串输入?

示例:

Number(010) == Number(0o10) //would be true

1 个答案:

答案 0 :(得分:1)

现在有办法迫使JS将Number(010)视为十进制。

当你写010时 - 它的八进制文字。但是在严格模式0 - 前缀are not allowed

"use strict" 
010.toString()
//Uncaught SyntaxError: Octal literals are not allowed in strict mode.

"use strict" 
0o10.toString()
"8"

所以在我看来,你必须使用文本输入并解析它以实现你的目标。