我只是想理解数字开头有 0-s 的 js 逻辑。
例如
var x = 09.3
// here x == 9.3
// other example
09.3 == 9.3
// returns true
// but check this one
var x = 02.5
// Uncaught SyntaxError: Unexpected number
// or this one
02.5 == 2.5
// same error here
任何人都可以解释它是如何工作的,为什么在第一个示例中它有效,并且忽略前导零,但在第二个示例中它给了我一个 SyntaxError
谢谢
Leading 0
对数字字面量表示八进制整数是本意,unless the second数字是8
or 9
。在这种情况下,领先的0
被忽略。
因为八进制数字文字必须是整数,02.5
是错误的。
这种行为在 2014 年被记录为 Firefox 中的一个错误,但因为世界上有如此多的 JavaScript 代码,而且其中很多(可能是无意中)依赖于09.3
该错误不是语法错误,而是被标记为“WONTFIX”。
正如下面的评论所指出的,在“严格”模式下,八进制常量是完全不允许的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)