为什么在产生 SyntaxError 之前带有 0 的十进制数?
Why does a decimal number with a 0 before it produce a SyntaxError?
我正在写一些 Javascript 时不小心输入了 04.5
而不是 40.5
。当我 运行 代码时,它产生了一个语法错误 Uncaught SyntaxError: Unexpected number
。我在 Chrome、Safari、Firefox 和 NodeJS 中对此进行了测试,它们都产生了相同的错误。我查看了 Javascript specifications,但在上面找不到任何内容。 Javascript 将前面带有 0 的十进制数解释为什么?
04.5 // Uncaught SyntaxError: Unexpected number
这是因为前导零。这很好用:
JSON.parse('[04.5]');
JSON 定义说 整数不能有前导零
编辑删除前导零,以防你有一个以 0 开头的数字数组:
var str = '[04,05,06,07,08,09]';
str = str.replace(/\b0(\d)/g, "");
JSON.parse(str);
带有前导零的它被解释为八进制。但是好像八进制不喜欢小数位。
我正在写一些 Javascript 时不小心输入了 04.5
而不是 40.5
。当我 运行 代码时,它产生了一个语法错误 Uncaught SyntaxError: Unexpected number
。我在 Chrome、Safari、Firefox 和 NodeJS 中对此进行了测试,它们都产生了相同的错误。我查看了 Javascript specifications,但在上面找不到任何内容。 Javascript 将前面带有 0 的十进制数解释为什么?
04.5 // Uncaught SyntaxError: Unexpected number
这是因为前导零。这很好用:
JSON.parse('[04.5]');
JSON 定义说 整数不能有前导零
编辑删除前导零,以防你有一个以 0 开头的数字数组:
var str = '[04,05,06,07,08,09]';
str = str.replace(/\b0(\d)/g, "");
JSON.parse(str);
带有前导零的它被解释为八进制。但是好像八进制不喜欢小数位。