我只想了解数字开头为0的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
谢谢
龙头0
上的数值字面指示一个八进制整数是意图,除非所述第二位数是8
或9
。在这种情况下,领导将0
被忽略。
由于八进制数字文字必须是整数,因此02.5
是错误的。
此行为在2014年被记录为Firefox中的一个错误,但是由于世界上有太多JavaScript代码,而且其中很大一部分(可能是无意中)依赖于09.3
不是语法错误,因此该错误被标记为“ WONTFIX”。
如以下注释中所指出的,在“严格”模式下,八进制常量完全被禁止。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句