字面量 Literals
看到什么就是什么。
比如我们想在程序中表示一个数字,就写一个数字。
要在程序中表示“你好”,需要加引号。
这些书写上的规矩,叫字面量。
下面讲解数字的字面量和字符串的字面量。
console.log(123);
console.log(你好);
|
数字的字面量
数字的字面量:即数字自己。不需要其他符号。
整数
可以表示成十进制(基数10)、十六进制(基数16)和八进制(基数8)。
JS中有字面量可以有三种进制。
十进制(0到9)整数组成的数字不带前导0;
带前导0、0O、0o都是八进制(0到7);
带前导0x、0X都是十六进制(0到F)。
他们显示的时候会以10进制显示。
八进制
console.log(15);
console.log(-15);
console.log(07);
console.log(010);
console.log(036);
console.log(040);
console.log(0100);
console.log(0111);
|
只能有0~7这几个数字,不能有8、9。
如果写错,会被当10进制。
虽然以0开头,但后面的数字错了,会以10进制显示。
但是如果是0o(零喔)或0O(零喔)开头,后面的数字写错了会报错。
正确
console.log(0o77);
console.log(0O77);
|
错误
console.log(0o88);
console.log(0O88);
|
十六进制
16进制,转10进制:0x2AF5=5×16^0+F×16^1+A×16^2+2×16^3=10997
console.log(0xff);
console.log(0x2b);
console.log(0x11);
|
如果后面有错误的写法,即报错。
下面的数字都是正15
console.log(15);
console.log(017);
console.log(0o17);
console.log(0O17);
console.log(0xf);
|
下面的数字都是负15
console.log(-15);
console.log(-017);
console.log(-0o17);
console.log(-0O17);
console.log(-0xf);
|
小数
允许使用e来表示10的几次方,
小数可以省略前面的0。
在计算机中,小数叫浮点数。
console.log(3.14);
console.log(-3.14);
console.log(0.14);
console.log(.14);
console.log(560000);
console.log(5.6e5);
console.log(0.0001);
console.log(1e-4);
console.log(.1e-3);
|
在8进制或16进制中使用小数会报错:
console.log(03.3);
console.log(0x3.3);
|
特殊的数字字面量
Infinity 无穷大。
下面试图输出一个非常大的数:
console.log(3e20);
console.log(3e16);
console.log(3e2016);
console.log(-3e2016);
console.log(Infinity);
console.log(-Infinity);
|
多大数字可以生成 Infinity ,因浏览器不同而不同。
NaN 不是一个数。
特别的是, NaN 是一个数字字面量。
console.log(0/0);
console.log(6/0);
console.log(NaN);
|
有趣的现象
Infinity+Infinity 等于 Infinity
NaN的所有运算都是NaN
console.log(Infinity+Infinity)
console.log(Infinity-Infinity)
console.log(Infinity+-Infinity)
console.log(NaN+NaN)
console.log(NaN-NaN)
|