三、字面量
字面量(literal)是一种固定值的表示方法。也可以叫做常量。
比如:数字、字符串、数组、json对象等类型的数据都有自己的字面量表示法。
字面量就是字面上的意思,看见什么就能认出是什么。
1、数字字面量
数字字面量指的是常用的数学意义上的数字的表示法。
alert(123);
书写时不需要添加任何特殊符号,直接写数字。
数字:整数、浮点数(小数)、特殊值。
①整数字面量
整数可以被表示成十进制(基数为10)、八进制(基数为8)以及十六进制(基数为16)。
十进制是最基本的数值字面量格式,可以直接在代码中输入。
八进制字面值必须带前导0、0O、0o 。八进制整数只能包括数字0-7。
十六进制的前缀是0x或0X。后面可以包含数字(0-9)和字母a~f或A~F。
在进行算术计算时,所有八进制和十六进制的数字都会被转换成十进制。
十进制直接书写数字即可,不需要加任何的前缀。
//console.log(100);
//console.log(12);
//console.log(-34);
八进制:必须有前缀,每一个位数值取值范围必须是0-7之间。
逢八进一。
//八进制
console.log(0110);
console.log(01);
console.log(010);
console.log(0100);
console.log(01000);
console.log(010000);
console.log(0100000);
console.log(0o77);
console.log(0o25);
![]()
八进制的每个位数不能超过7,如果超过了,假如前缀是0,它会强制转成十进制。
console.log(089);
如果是以0o/0O开头,超过7的范围,控制台会直接报错:语法错误,有非法字符。
console.log(0o89);
console.log(0O89);
计算:034=8*3+1*4=28
十六进制:逢十六进一。每个位数的取值范围是0-9、a-f(A-F)。
console.log(0x2b); //2*16+1*11=43
console.log(0x5c); //5*16+1*12=92
console.log(0x56); //86
如果超过规定取值范围,不会转十进制,直接报错。
console.log(0x4g);
所有负的整数,只要在前面加-号就可以
console.log(-0x30); //-48
②浮点数字面量
书写:整数.小数
浮点数字面量有几种表示方法:
//浮点数字面量
console.log(3.1415926);
console.log(0.618);
console.log(.618);
console.log(42356.89);
console.log(0.4235689e5);
console.log(0.00000056);
console.log(0.56e-6);
浮点数没有进制的问题,所有的浮点数都是十进制下的数字。
重点记忆:幂的表示法。
③特殊值
有两个:无穷Infinity,NaN。
无穷:计算机计算能力有限,如果大于某一个临界点或者小于某一个临界点,计算机没法算出具体的数字,直接输出的是一个正无穷或负无穷。Infinity或者-Infinity。
//Infinity
console.log(Infinity);
console.log(-Infinity);
console.log(8.6e99489403003455);
console.log(-8.6e99489403003455);
NaN:not a number,不是一个数。你的这个数字已经没办法用正常的表示法表示法,不是一个正常意义的数字。其实还是一个数字字面量
//NaN
console.log(NaN);
console.log(0/0);
console.log(12/0);
2、字符串字面量
字符串就是人类说的话、词语。各种语言、数字、其他符号等等。
字符串字面值可以包含有零个或多个字符,由双引号对或单引号对儿包围。字符串被限定在同种引号之间;也即,必须是成对单引号或成对双引号。
console.log("我会说English,考试拿第1")
console.log(1);
console.log("1");
在字符串中可以使用一些特殊字符,比如
\n 换行
\t Tab制表
字符串中可以使用转义字符\,
\' 单引号
\” 双引号
\\ 反斜杠
console.log("恰\t似\n一江春水\n向东流");
console.log("他说:\"给点money\"");
console.log("输出\\");