在JavaScript中,我们可以分成两种类型:
基本类型;
复杂类型;
两种类型的区别是:存储位置不同。
1.基本类型
Undefined,Null,Number,Boolean,String和Symbol(符号,es6新增)
2.复杂类型
Object(对象)
在ECMAScript,所有值都可以用以上7种数据类型之一来表示。
我们今天讲的是基本数据类型中的Number
数值最常见的整数类型格式则为十进制,还可以设置八进制(零开头)、十六进制(0x开头)
1.十进制
十进制整数是最基本的数值字面量,直接写出即可:
let Num = 22 // 10进制的22
2.八进制
前缀为0,然后接响应的八进制数字,一般是0~7。
如果字面量中的数字超过了应有的范围,就会忽略前缀0,后面的数字序列就会被当成十进制数。
- let num1 = 026 // 8进制的22
- let num2 = 081 // 无效 变为10进制
八进制转十进制的计算方式:
百位数 × 8的2次方 + 十位数 × 8的1次方 + 个位数 × 8的0次方 = 十进制
如:num1=026 ;转成十进制就是:0 × 8² + 2 × 8¹ + 6 × 8º = 22
- 除 0 以外, 任何数的 0 次方,都等于 1
- ECMAScript 2015 或 ES6 中的八进制值通过前缀 0o 来表示;严格模式下,前缀 0 会被视为语法错误,如果要表示 八进制值,应该使用前缀 0o
3.十六进制
前缀为0x(区分大小写),十六进制数字是0 ~ 9 和 A ~ F.
ABCDEF表示的二进制数字分别是:10,11,12,13,14,15
let Num1 = 0x1A //16进制的26
十六进制转十进制的计算方式:
百位数 × 16的2次方 + 十位数 × 16的1次方 + 个位数 × 16的0次方 = 十进制
如:Num1=0x1A ;转成十进制就是:1 × 16¹ + 10 × 16º = 16 + 10= 26
4.二进制
数值只有0和1,es6中新增了二进制字面量的表示,以0b开头
- let num5 = 0b101 //2进制的5
- let num6 = 0b111001 //2进制的57
二进制转十进制的计算方式:
......百位数 × 2的2次方 + 十位数 × 2的1次方 + 个位数 × 2的0次方 = 十进制
如:num6=0b111001 ;转成十进制就是:57
这里推荐一个进制转换器,可以转成你想要的进制