• 如何解释”字面量“?


    字面量

    • 字面量(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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    ②、浮点数

    • 数学概念中的小数
    • 包含:整数、小数点、小数部分
    • 浮点数不区分进制,所有的浮点数都是十进制下的数字
    • 注意:如果浮点数是大于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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    ③、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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    ④、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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    ①、转义符号 \

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

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

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

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

      • ’ 单引号
      • " 双引号
      • \ 反斜杠
    <script>
        // 转义符
        console.log("这是第一行文字\n这是第二行文字\n\t这是第三行文字")
        console.log("这是一个\"字符串\"#&*")
        console.log("C:\Users\Administrator")
        console.log("C:\\Users\\Administrator")
    script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    Linux软件安装卸载(yum+rpm)
    面试一位喜欢用"精通xx"的嵌入式工程师
    linux解决报错 libstdc++.so.6: version GLIBCXX_3.4.30 not found
    Mock工具之Moco使用
    Pycharm中配置服务器中的Jupyter并使用
    ORACLE内存结构
    安科瑞无线计量模块AEW100指导性技术要求-Susie 周
    OpenFeign、RestTemplate支持自定义服务地址列表
    P1278 单词游戏 简单搜索+玄学优化
    TypeScript
  • 原文地址:https://blog.csdn.net/m0_48069349/article/details/132914452