如何解释”字面量“?

(38) 2024-04-17 12:01:04

字面量

  • 字面量(literal)是用于表达一个固定值的表示法,又叫常量
  • 通俗的理解,字面就是所见即所得,js 程序执行到代码中的字面量,会立即知道它是什么类型的数据,值是多少
  • 可以用于表示固定值,比如:数字、字符串、undefined、布尔类型的字面值等

1、数字字面量

  • 就是数学意义上的数字
  • 数字字面量区分:整数字面量、浮点数字面量(小数)、特殊值
  • 书写时直接书写字面量,不需要添加任何辅助符号

①、整数

  • 整数字面量写法区分进制
  • 整数可以被表示成十进制(基数为10)、八进制(基数为8)以及十六进制(基数为16)
  • 十进制是最基本的数值字面量格式,可以直接在代码中输入
  • 八进制字面值必须带前导0、0O、0o 。八进制整数只能包括数字0-7
  • 十六进制的前缀是0x或0X。后面可以包含数字(0-9)和字母af或AF
  • 在进行算术计算时或者参与程序,所有八进制和十六进制的数字都会被转换成十进制

整数的进制

  • 十进制:逢十进一,每个位数只能是0-9之间的数字
  • 八进制:逢八进一,每个位数上只能是0-7之间的数字,而且必须添加前缀,0、0O、0o
  • 十六进制:逢十六进一,每个位数上必须是0-9、a-f之间的符号,必须写前缀,0x、0X开头
  • 八进制中,如果以0开头,每个位数上有超过0-7之间的数字出现,也就是8/9,强制忽视前面的0,直接将后面数字当做十进制
<script> // 整数字面量 // 十进制 console.log(10) console.log(-10) // 自己要知道转换成十进制是多少 // 八进制 console.log(01) // 8 console.log(0100) // 8*8  console.log(01000) // 8*8*8 console.log(0o100) // 特殊情况 console.log(089) // console.log(0o89) 语法错误  // 十六进制 console.log(0x1) // 1 console.log(0x10) // 16 console.log(0x100) // 16*16 console.log(0x110) // 16*16+16 </script>

②、浮点数

  • 数学概念中的小数
  • 包含:整数、小数点、小数部分
  • 浮点数不区分进制,所有的浮点数都是十进制下的数字
  • 注意:如果浮点数是大于0 小于1的,可以省略小数点前面的0不写

浮点数的精度问题

  • 浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数
  • 例如:0.1 + 0.2; 结果不是 0.3,而是:0.30000000000000004
<script> // 浮点数字面量 console.log(1.23) console.log(-1.23) console.log(0.123) console.log(.123) console.log(1.23e3) // 科学(e)技术法 console.log(1.23e-3) console.log(0.1 + 0.2) </script>

③、Infinity 无穷

  • Infinity:无穷的意思
  • 由于计算机计算能力有限,如果高于最大计算值直接显示为正无穷 Infinity,如果低于最小 计算值直接显示为 -Infinity
  • Infinity 本身就是一个数字

- 最小值:Number.MIN_VALUE,这个值为: 5e-324

- 最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308

- 无穷大:Infinity

- 无穷小:-Infinity

<script> // Infinity 无穷 console.log(Number.MIN_VALUE) console.log(Number.MAX_VALUE) console.log(-5e789) console.log(5e789) console.log(Infinity) </script>

④、NaN

  • NaN:(not a number)表示不是一个正常的数,但是还是一个 Number 类型的数字,这个数字没办法用前面的表示方法表示
  • NaN 与任何值都不相等,包括他本身
  • isNaN(): 判断一个数据是不是一个NaN,是返回 true,否返回false
<script> // NaN 不是一个正常的数 console.log(0 / 0) console.log(isNaN(0 / 0)) console.log(isNaN(12)) </script>

2、字符串字面量

  • 字符串是由任意个数的有序或无序的字符组成的串,类似人类的语言,在 JS 中有自己特殊 的写法
  • 组成:字母、汉字、特殊符号、空白等
  • 字符串字面量写法:是用一对单引号(’ ')或双引号(“ ”)及引号内的字符构成,引号中间的字符可以有任意多个,也可以是没有字符的空字符串
  • 注意:字符串中如果字符包含了双引号,则其外部应该由单引号标示,反之相同
<script> // 字符串字面量 console.log("这是一个字符串#&*") // console.log("这是一个"字符串"#&*") 语法错误 console.log("这是一个'字符串'#&*") console.log('abc') console.log('a"b"c') console.log('123') console.log(' ') // 空白字符串 console.log('') // 空字符串 </script>

①、转义符号 \

  • 字符串中,有一些特殊功能的字符不能直接书写,还有一些特殊效果不能直接书写

  • 这时,可以使用转义符 \ 对这些字符进行转义

  • 在字符串中可以使用转义符 \ 加普通字母,替代一些特殊字符

    • \n 换行
    • \t Tab制表
  • 字符串中可以使用转义符 \ 将特殊功能字符变为普通字符

    • ’ 单引号
    • " 双引号
    • \ 反斜杠
<script> // 转义符 console.log("这是第一行文字\n这是第二行文字\n\t这是第三行文字") console.log("这是一个\"字符串\"#&*") console.log("C:\Users\Administrator") console.log("C:\\Users\\Administrator") </script>
THE END

发表回复