03_数字的字面量

字面量 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进制显示。
console.log(088); //输出88
  但是如果是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
  如果后面有错误的写法,即报错。
console.log(0x2m); //出错
  下面的数字都是正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

 

 
posted @ 2016-12-17 18:15  程序媛李李李李蕾  阅读(1082)  评论(0编辑  收藏  举报