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
最佳答案
现在有办法强制 JS 将 Number(010)
视为十进制。
当您编写 010
时 - 它是八进制文字。但是在严格模式下 0
-prefixed are not allowed .
"use strict"
010.toString()
//Uncaught SyntaxError: Octal literals are not allowed in strict mode.
"use strict"
0o10.toString()
"8"
所以在我看来,您必须使用文本输入并解析它才能实现您的目标。
关于javascript - 如何强制以 10 为基数输入数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50154493/