ECMAscript 5 为啥不支持 八进制值


《Prefessional Javascript for Web Developers 3rd Edition》里面有提到,我感觉很困惑

web ecmascript JavaScript

jpg改rar 10 years, 2 months ago

javascript 以前是支持八进制数的,直到 ECMA-262 strict mode 才变成不允许

八进制数这种表达方式在很多语言里面都被废弃了,替代它的是 0o1234567 这种形式,这应该是大势所趋了。特别是在动态语言里面,经常会有 string 和数字自动互转, 09 究竟应该被转成 9 还是出错太让人纠结了,于是最终大家都倾向于废弃旧的八进制,把 09 当做 9 来看了。

地中海之魂 answered 10 years, 2 months ago

后面多加一个基数的参数,用来判别进制,就OK了,昨天看js书籍中学到的,呵呵!

O...TL answered 10 years, 2 months ago

不支持的是字面量形式的八进制数值,而且仅在严格模式下才会开启运行时检查,想要使用八进制可以用 parseInt 处理一下。

严格模式不支持字面量形式八进制数值的主要原因是用 0 开头的数字太容易让人犯错了。

鱼头星星人 answered 10 years, 2 months ago

超威金坷垃 answered 10 years, 2 months ago

Your Answer