【JavaScript】1_数据类型

184 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情

1、数值

数值(Number)

  • 在JS中所有的整数和浮点数都是Number类型
  • JS中的数值并不是无限大的,当数值超过一定范围后会显示近似值
  • Infinity 是一个特殊的数值表示无 穷
  • 所以在JS中进行一些精度比较高的运算时要十分注意
  • NaN 也是一个特殊的数值,表示非法的数值
<script>
    let a = 10
    a = 10.5
    a = 3.14
    a = 9999999999999991111111111111111111
    a = 99999 ** 99999
    a = Infinity
    a = 1.11111111111111111111111111111111111111111111
    a = 0.0000000000000000000000000000000000001
    a = 0.1 + 0.2
    a = 1 - "a" // NaN (Not a Number)
    a = NaN
</script>

大整数(BigInt)

  • 大整数用来表示一些比较大的整数

  • 大整数使用n结尾,它可以表示的数字范围是无限大

            a = 99999999999999999999999999999999999999999999999999n

其他进制的数字:

二进制 0b

八进制 0o

十六进制 0x

<strcipt>
    a = 0b1010
    a = 0o10
    a = 0xff
    console.log(a)
</strcipt>

2、类型检查

typeof 运算符

  • typeof用来检查不同的值的类型

  • 它会根据不同的值返回不同的结果

<script>
    let a = 10
    let b = 10n
    console.log(typeof a) // "number"
    console.log(typeof b) // "bigint"
</script>

3、字符串

字符串(String) - 在JS中使用单引号或双引号来表示字符串 - 转义字符 \ " --> " ' --> ' \ --> \ \t --> 制表符 \n --> 换行

 <script>
     let a = "Hello"
     a = "你好"
     a = '这是一个"字\\符串'
     let str = `你好,${name}`
     let b = 10
     //    console.log(`b = ${b}`)

     let c = "5"
     c = "hhh"
     c = `aaa`
     console.log(typeof c)
 </script>

4、其他的数据类型

布尔值(Boolean)

            - 布尔值主要用来进行逻辑判断
                            - 布尔值只有两个truefalse
                            - 使用typeof检查一个布尔值时会返回 "boolean"

空值 (Null)

            - 空值用来表示空对象
                            - 空值只有一个 null
                            - 使用typeof检查一个空值时会返回"object"
                                    - 使用typeof无法检查空值

未定义(Undefined)

            - 当声明一个变量而没有赋值时,它的值就是Undefined
                            - Undefined类型的值只有一个就是 undefined
                            - 使用typeof检查一个Undefined类型的值时,会返回 "undefined"

符号(Symbol)

            - 用来创建一个唯一的标识    
                            - 使用typeof检查符号时会返回 "symbol"

JS中原始值一共有七种

1.Number ​ 2.BigInt ​ 3.String ​ 4.Boolean ​ 5.Null ​ 6.Undefined ​ 7.Symbol ​ 七种原始值是构成各种数据的基石 ​ 原始值在JS中是不可变类型,一旦创建就不能修改

<script>
    let bool = true // 真
    bool = false // 假
    let num = 1
​
    let a = null
    let c = Symbol() // 调用Symbol()创建了一个符号
    console.log(typeof c)
</script>

5、类型转换——字符串

类型转换指将一种数据类型转换为其他类型 将其他类型转换为(字符串、数值和布尔值)

转换为字符串

1.调用toString()方法将其他类型转换为字符串

  • 调用xxx的yyy方法 --> xxx.yyy()

  • 由于null和undefined中没有toString() 所以对这两个东西调用toString()时会报错

    2.调用String()函数将其他类型转换为字符串

  • 调用xxx函数 --> xxx()

  • 原理: 对于拥有toString()方法的值调用String()函数时, 实际上就是在调用toString()方法 对于null,则直接转换为"null" 对于undefined,直接转换为"undefined"

<script>
        let a = 10 // "10"
        a = true // "true"
        a = 11n  // "11"
        a = undefined
​
        let b = 33 // "33"
        b = null // "null"
        b = undefined // "undefined"
        b = true
        console.log(typeof b, b)
​
        b = String(b)
        console.log(typeof b, b)
</script>

6、类型转换——数值

将其他的数据类型转换为数值

1.使用Number()函数来将其他类型转换为数值

转换的情况:

  • 字符串:
  • 如果字符串是一个合法的数字,则会自动转换为对应的数字
  • 如果字符串不是合法数字,则转换为NaN
  • 如果字符串是空串或纯空格的字符串,则转换为0
  • 布尔值:
  • true转换为1,false转换为0
  • null 转换为 0
  • undefined 转换为 NaN

专门用来将字符串转换为数值的两个方法

parseInt() —— 将一个字符串转换为一个整数
  • 解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效的整数
  • 也可以使用parseInt()来对一个数字进行取整
parseFloat() —— 将一个字符串转换为浮点数
  • 解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效的小数
<script>
        let a = '123' // 123
        a = 'abc' // NaN
        a = '3.1415926' // 3.1415926
        a = '11px' // NaN
        a = ''  // 0
        a = '    ' // 0
​
        a = true // 1
        a = false // 0
​
        a = null // 0
        a = undefined // NaN
        
        let b = '123px'
        b = 'a123'
        b = '123.45'
        // b = 456.123
        console.log(typeof b, b)
​
        b = parseInt(b)
        console.log(typeof b, b)
</script>

7、类型转换——布尔值

1.使用Boolean()函数来将其他类型转换为布尔值

  • 转换的情况: 数字:
  • 0 和 NaN 转换为false
  • 其余是true

字符串:

  • 空串 转换为 false
  • 其余是true

null和undefined 都转换为 false

对象:对象会转换为true

  • 所有表示空性的没有的错误的值都会转换为false: 0、NaN、空串、null、undefined、false
<script>
        let a = 1 // true
        a = -1 // true
        a = 0 // false
        a = NaN // false
        a = Infinity // true
​
        a = 'abc' // true
        a = 'true' // true
        a = 'false' // true
        a = '' // false
        a = " " // true
        a = null
        a = undefined
​
        console.log(typeof a, a)
        a = Boolean(a)
        console.log(typeof a, a)
</script>