您的位置:首页> 前端教程> ES6教程
文章导航

JavaScript八进制与二进制表示法

2018-9-20 22:11| 作者: admin| 查看: 2035| 评论: 0|来自: 蚂蚁部落

本文将通过代码实例介绍一下JavaScript中八进制与二进制数值表示法。

之所以要着重介绍八进制和二进制是因为如下两点:

(1).ES2015之前没有二进制表示法。

(2).ES不同版本对八进制表示法改变很大。

一.八进制介绍:

首先看一段代码实例:

[JavaScript] 纯文本查看 复制代码运行代码
console.log(070 .toString());

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/20/221213o7uaa18r17316yqs.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述代码分析如下:

(1).数字以0起始默认表示数字是八进制,当然并不是全部,后面会有例子。

(2).使用toString方法将数字转换为字符串,默认是转换为十进制。

(3).点(.)与数字之间有个空格,这不是失误,而是为了防止将点误读为小数点。

[JavaScript] 纯文本查看 复制代码运行代码
console.log(090 .toString());

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/20/221252sxx44kg9exxdodug.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

虽然数字是以0起始的,但是依然被解读为十进制数字。

这很容易理解,因为八进制中不可能出现9。

[JavaScript] 纯文本查看 复制代码运行代码
'use strict';
console.log(070 .toString());

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/20/221324okj5cdoz88kopoju.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

在严格模式下使用以0起始作为八进制标识报错了。

总结如下:

(1).ES5非严格模式下允许以0起始作为八进制数字的标识。

(2).在严格模式下,以0起始作为八进制数字的标识会报错。

[JavaScript] 纯文本查看 复制代码运行代码
console.log(0O70 .toString());

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/20/235003aiq3ozsilmnxll1z.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述代码是中的数字是ES2015改进的八进制数字表示法。

分析如下:

(1).0O70是ES2015新增的八进制数字表示法。

(2).以0O起始,第一个是零(0),第二个是字母O(octal缩写)。

二.二进制介绍:

ES2015之前,并没有二进制表示法。

代码实例如下:

[JavaScript] 纯文本查看 复制代码
let a=10010;
let b=010010;

上面两个都不是二进制数字。

a是一个看上去很像二进制的数字的十进制数字。

b是一个八进制数字,但是在严格模式下会报错。

[JavaScript] 纯文本查看 复制代码运行代码
console.log(0b111010 .toString());

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201809/20/221511p0hbv38w99k9cc3v.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

代码中的数字是ES2015新增的二进制数字表示法。

分析如下:

(1).0b111010是ES2015新增的二进制数字表示法。

(2).以0b起始,第一个是零(0),第二个是字母b(binary缩写)。

1

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (1 人)

最新评论

返回顶部