浅析ES6的八进制与二进制整数字面量

 更新时间:2016年08月30日 17:40:39   作者:紫云飞  
这篇文章给大家介绍了ES6特性中的八进制和二进制整数字面量,介绍的挺不错的现在分享给大家,有需要的可以参考借鉴。

前言

在几年前,当SpiderMonkey实现了严格模式的时候.我了解到,严格模式禁用了八进制整数字面量的写法.因为有证据表明,一些新手会利用前导0来对齐多行中的数字,从而导致意想不到的结果:

var sum = 015 + // 相当于十进制的13,而不是15
     197 +
     001;  // 反正是1
console.log(sum) // 相加得到的和是211,而不是新手认为的213

但是仍有一些开发者们需要八进制整数(尤其是那些Mozilla扩展开发者和node.js开发者),最常见的就是用在处理文件权限(755,644这些)的时候.因此,ES6又增加了一种新的八进制整数字面量写法.和十六进制的0x或0X类似,新的八进制整数使用0o或0O作为前导标识,后面跟若干个八进制的数字字符(0到7),这种写法就不会再困扰新手了:

var DEFAULT_PERMS = 0o644; // 严格模式下也可用

值得注意的一点是,0O前缀的可读性太差了(0和大写的O长的太像了,很难区分),我在esdiscuss上提出了这个问题,希望能禁用掉大写的0O前缀,不过TC39目前的决定还是认为一致性应该大于可读性(一致性指的是要和0X以及0B等一致).我认为这个决定是值得商榷的,我推荐你永远不要使用大写的0O.

另外,一些开发者们还需要二进制的整数字面量写法,这种写法ECMAScript从来没有支持过.ES6支持了这种写法,和八进制以及十六进制类似,使用0b或0B前缀:

var FLT_SIGNBIT = 0b10000000000000000000000000000000;
var FLT_EXPONENT = 0b01111111100000000000000000000000;
var FLT_MANTISSA = 0b00000000011111111111111111111111;

目前Firefox Aurora已经实现了这两个语法,如果你更富有冒险精神,还可以使用更新的Firefox Nightly.

总结

以上就是这篇文章的全部内容,希望本文的内容对大家学习ES6能有所帮助。如果有疑问可以留言交流。

相关文章

  • videojs+swiper实现淘宝商品详情轮播图

    videojs+swiper实现淘宝商品详情轮播图

    这篇文章主要为大家详细介绍了videojs+swiper实现淘宝商品详情轮播图,轮播翻动,视频暂停,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • JavaScript调用后台的三种方法实例

    JavaScript调用后台的三种方法实例

    这篇文章介绍了JavaScript调用后台的三种方法实例,有需要的朋友可以参考一下
    2013-10-10
  • uni-app瀑布流效果实现方法

    uni-app瀑布流效果实现方法

    Uni-app是一个基于Vue.js开发跨平台应用的框架,它可以将代码编译成多个平台下的原生应用,这篇文章主要给大家介绍了关于uni-app瀑布流效果的相关资料,需要的朋友可以参考下
    2023-12-12
  • JS高级运动实例分析

    JS高级运动实例分析

    这篇文章主要介绍了JS高级运动,结合实例形式分析了javascript运动框架原理、实现与应用技巧,需要的朋友可以参考下
    2016-12-12
  • JS getRandomValues和Math.random方法深入解析

    JS getRandomValues和Math.random方法深入解析

    这篇文章主要为大家介绍了JS getRandomValues和Math.random方法深入详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • 基于javascript实现按圆形排列DIV元素(二)

    基于javascript实现按圆形排列DIV元素(二)

    本篇文章主要介绍基于javascript实现按圆形排列DIV元素的方法,此文着重于介绍怎样实现的按圆形排列DIV元素的运动原理和实现效果代码,需要的朋友来看下吧
    2016-12-12
  • 把json格式的字符串转换成javascript对象或数组的方法总结

    把json格式的字符串转换成javascript对象或数组的方法总结

    下面小编就为大家带来一篇把json格式的字符串转换成javascript对象或数组的方法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • JS Generator 函数的含义与用法实例总结

    JS Generator 函数的含义与用法实例总结

    这篇文章主要介绍了JS Generator 函数的含义与用法,结合实例形式总结分析了JS Generator 函数基本含义、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • BootstrapVue选项卡标题增加关闭按钮的方法

    BootstrapVue选项卡标题增加关闭按钮的方法

    这篇文章主要为大家详细介绍了BootstrapVue选项卡标题增加关闭按钮的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • JavaScript自动点击链接 防止绕过浏览器访问的方法

    JavaScript自动点击链接 防止绕过浏览器访问的方法

    下面小编就为大家带来一篇JavaScript自动点击链接 防止绕过浏览器访问的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01

最新评论