• 微信号
目录

javascript基础

您当前的位置:首页 > 我的笔记 > javascript基础>javascript数据类型转换

javascript数据类型转换

javascript数据类型转换

JavaScript是弱数据类型: JavaScript也不知道变量到底属于那种数据类型,只有赋值了才清楚。

如,使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算

在 JavaScript 中数据被分成了不同的类型,如数值、字符串、布尔值、undefined,在实际编程的过程中,不同数据类型之间存在着转换的关系

隐式转换

某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换

示例

    <script>
        let num = 10 // 数值
        let num2 = '2' // 字符串
    
        // 结果为 102
        // 原因是将数值 num 转换成了字符串,相当于 '13'
        // 然后 + 将两个字符串拼接到了一起
        console.log(num + num2)
    
        // 结果为 8
        // 原因是将字符串 num2 转换成了数值,相当于 2
        // 然后数值 10 减去 数值 2
        console.log(num - num2)
    
        let x = prompt('请输入一个数字')
        let y = prompt('请再输入一个数字')
    
        alert(x + y);
    </script>

规则:

+ 号两边只要有一个是字符串,都会把另外一个转成字符串

除了+以外的算术运算符 比如 - * / 等都会把数据转成数字类型

显示转换

编写程序时过度依靠系统内部的隐式转换是不严禁的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换

示例

    <script>
        let t = '12'
        let f = 8
        // 显式将字符串 12 转换成数值 12
        t = Number(t)

        // 检测转换后的类型
        console.log(typeof t);
        console.log(t + f) // 结果为 20

        let num = 12.456
        num1 = parseInt(num)
        console.log(num1) //结果为12
        num2 = parseFloat(num)
        console.log(num2) //结果为12.456

        // 并不是所有的值都可以被转成数值类型
        let str = 'hello'
        // 将 hello 转成数值是不现实的,当无法转换成
        // 数值时,得到的结果为 NaN (Not a Number)
        console.log(Number(str))
    </script>

转换为数字型

Number(数据)

转成数字类型

如果字符串内容里有非数字,转换失败时结果为 NaN(Not a Number)即不是一个数字

NaN也是number类型的数据,代表非数字

parseInt(数据)

只保留整数

parseFloat(数据)

可以保留小数