字面量 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); //输出正 15
console.log(-15); //输出负 -15
console.log(07); //输出 7
console.log(010); //输出 8
console.log(036); //输出 30 , 3*8+6=30
console.log(040); //输出 32 ,3*4+0=32
console.log(0100); //输出 64 ,0*1+0*8+1*64=64
console.log(0111); //输出 73 ,1*1+1*8+1*64=73
|
只能有0~7这几个数字,不能有8、9。
如果写错,会被当10进制。
虽然以0开头,但后面的数字错了,会以10进制显示。
但是如果是0o(零喔)或0O(零喔)开头,后面的数字写错了会报错。
正确
console.log(0o77); //输出88
console.log(0O77); //输出88
|
错误
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); //255 , 15*16^0+15*16^1=255
console.log(0x2b); //13 , 11*16^0+2*16^1=43
console.log(0x11); //17
|
如果后面有错误的写法,即报错。
下面的数字都是正15
console.log(15);
console.log(017);
console.log(0o17); //字母小写o
console.log(0O17); //字母大写O
console.log(0xf);
|
下面的数字都是负15
console.log(-15);
console.log(-017);
console.log(-0o17); //字母小写o
console.log(-0O17); //字母大写O
console.log(-0xf);
|
小数
允许使用e来表示10的几次方,
小数可以省略前面的0。
在计算机中,小数叫浮点数。
console.log(3.14); //3.14
console.log(-3.14); //-3.14
console.log(0.14); //0.14
console.log(.14); //0.14 整数是0时可以省略
console.log(560000); //560000
console.log(5.6e5); //560000 ,支持指数写法。 5.6*10^5
console.log(0.0001); //0.0001
console.log(1e-4); //0.0001
console.log(.1e-3); //0.0001 可以省略小数点前面的0。
|
在8进制或16进制中使用小数会报错:
console.log(03.3);
console.log(0x3.3);
|
特殊的数字字面量
Infinity 无穷大。
下面试图输出一个非常大的数:
console.log(3e20); //300000000000000000000
console.log(3e16); //30000000000000000
console.log(3e2016); //Infinity
console.log(-3e2016); //-Infinity 负无穷大
//可以直接输出 Infinity
console.log(Infinity);
console.log(-Infinity);
|
多大数字可以生成 Infinity ,因浏览器不同而不同。
NaN 不是一个数。
特别的是, NaN 是一个数字字面量。
console.log(0/0); //NaN
console.log(6/0); //Infinity
console.log(NaN); //NaN
|
有趣的现象
Infinity+Infinity 等于 Infinity
NaN的所有运算都是NaN
console.log(Infinity+Infinity) //Infinity
console.log(Infinity-Infinity) //NaN
console.log(Infinity+-Infinity) //NaN
console.log(NaN+NaN) //NaN
console.log(NaN-NaN) //NaN
|
时间: 2024-10-15 02:17:14