ECMAscript 5 为啥不支持 八进制值

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

回复
阅读 4.5k
4 个回答

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

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏