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
答案 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"
所以在我看来,你必须使用文本输入并解析它以实现你的目标。