四、JavaScript 的数据类型

本文详细介绍了JavaScript中的数据类型,包括数值类型(Number和BigInt),数值的进制表示,类型检查(typeof运算符),字符串类型(转义字符和模板字符串),布尔值,空值(Null)和未定义(Undefined)。同时,还讨论了符号(Symbol)以及不同类型之间的转换方法,如转换为字符串、数值和布尔值。
摘要由CSDN通过智能技术生成

4.1、数值类型

        (1)、数值(Number)

                - 在 js 中所有的整数和浮点数都是 Number 类型

                - js 中的数值并不是无限大的,当数值超过一定范围后会显示近似值

                - Infinity 是一个特殊的数值表示无穷

                - NaN 也是一个特殊的数值,表示非法的数字

<script>
    var a = 10;
    a = 3.14;
    a = Infinity;// 无穷大
    a = 1 - "a" // NaN (Not a Number)
    consloe.log(a);
</script>

        (2)、大整数(BigInt)

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

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

<script>
    var a = 999999999999999999999999999999999999n
</script>

        (3)、其他进制的数字:

                - 二进制 0b

                - 八进制 0o

                - 十六进制 0x

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

4.2、类型检查

        (1)、typeof 运算符

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

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

<script>
    var a = 10
    var b = 10n
    console.log(typeof a)// Number
    console.log(typeof b)// Bigint
</script>

4.3、字符串类型

        (1)、在 js 在中使用单引号或双引号来表示字符串

                - 转义字符 \

                        \ " --> "

                        \ ' --> '

                        \\ --> \\

                        \t --> 制表符

                        \n --> 换行

                - 模板字符串

                        - 使用反单引号 ` 来表示模板字符串

                        - 模板字符串中可以嵌入变量

                - 使用 typeof 检查一个字符串是会返回 String

<script>
    var a = 'Hello'
    a = "你好"
    a = "这是一个\"字\\\\符串"
    a = "呵呵\t哈哈哈"
    a = "呵呵\n哈哈哈"
    a = `今天天气真不
错`
    var name = "孙悟空"
    var str = `你好, ${name}`
    console.log(str)// 你好, 孙悟空

    var b = 10
    console.log(`b = ${b}`)// b = 10

    var c = 'Hello'
    console.log(typeof c)// String
</script>

4.4、布尔值(Boolean)

        - 布尔值主要用来进行逻辑判断

        - 布尔值只有两个 true 和 false

        - 使用 typeof 检查一个布尔值时会返回 boolean

<script>
    var bool = true
    bool = false
    var num = 1
    console.log(typeof bool)// boolean
</script>

4.5、空值(Null)

        - 空值用来表示空对象

        - 空值只有一个 null

        - 使用 typeof 检查一个空值时会返回 object

        - 使用 typeof 无法检查空值

<script>
    var a = null
    console.log(typeof a)// object
</script>

4.6、未定义(Undefined)

        - 当声明一个变量而没有赋值时,它的值就是 Undefined

        - Undefined 类型的值只有一个就是 Undefined

        - 使用 typeof 检查一个 Undefined 类型的值时,会返回 "undefined"

<script>
    var a = undefined
    console.log(typeof a)// undefined
</script>

4.7、符号(symbol)

        - 用来创建一个唯一的标识

        - 使用 typeof 检查符号时会返回 "symbol"

<script>
    var a = symbol()
    console.log(typeof a)// symbol
</script>

4.8、类型转换

        - 类型转换值将一种数据类型转换为其他类型

        - 其他类型转换为(字符串、数值和布尔值)

        (1)、转换为字符串

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

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

                        - 由于使用 null 和 undefined 中没有 toString()

                        - 所以对这两个东西调用 toString() 会报错

<script>
    var a = 10
    a = true
    a = 11n
    a = undefined
    console.log(typeof a, a)
    a = a.toString() // "10"
    console.log(typeof a, a)
</script>

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

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

                        - 原理:

                                - 对于拥有 toString() 方法的值调用  String() 函数时,实际上就是在调用 toString() 方法

                                - 对于 null ,则直接转换为 “null”

                                - 对于 undefined ,直接转换为 “undefined”

<svript>
    var b = 33
    b = null
    b = undefined
    b = true
    console.log(typeof b, b)
    b = String(b)
    console.log(typeod b, b)
</script>

       (2)、转换为数值

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

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

                转换的情况:

                        - 字符串:

                                - 如果字符串是一个合法的数字,则会自动转换为对应的数字

                                - 如果字符串不是一个合法数字,则转换为NaN

                                - 如果字符串是空字符串或纯空格的字符串,则转换为0

                        - 布尔值:

                                - true 转换为 1 ,false 转换为 0

                        - null 转换为 0

                        - nudefined 转换为 NaN

<script>
    var a = '123'// 123
    a = 'abc' // NaN
    a = '3.1415926' // 3.1415926
    a = '11px' // NaN
    a = '0' // 0
    a = '  ' // 0 

    a = true // 1
    a = fales // 0
    console.log(typeof a, a)
    
    a = Number()
    console.log(typeof a, a)
</script>

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

                        parseInt() —— 将一个字符串转换为一个数值

                              - 解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效的整数

                                - 也可以使用 parseInt() 来对一个数字进行取整

                        parseFloat() —— 将一个字符串转换为浮点数

                              - 解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效的小数

<script>
    var b = '123px'
    console.log(typeof b, b)// String 123px

    b = parseInt(b)
    console.log(typeof b, b)// Number 123 
</script>

        (3)、转换为布尔值

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

                        - 转换的情况

                                - 数字:

                                        - 0 和 NaN 转换为false

                                        - 其余是 true

                                - 字符串:

                                        - 空字符串转换为 false

                                        - 其余是 true

                                - null 和 nudefined 都转换为 false

                                - 对象:对象都会转换为 true

                        - 所有表示空性的没有的错误的值都会转换为 false

                                0、NaN、空串、null、undefined、false

<script>
    var a = 1 // true
    a = -1 // true
    a = 0 // false
    a = NaN // false
    a = Infinity // true

    a = 'abc' // true
    a = 'true'// true
    a = 'falsr'// false
    a = '' // false
    a = " " // true


    a = null // false
    a = nudefined // false

    console.log(typeof a, a)

    a = Boolean(a)

    cpnsole.log(typeof a, a)
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值