数据转换

本文深入探讨了JavaScript中特殊值NaN的含义及其比较逻辑,解释了typeof操作符的使用,以及不同数据类型在特定操作下如何进行转换,包括自动与强制转换的过程和规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NaN 是什么 为什么 NaN == NaN 执行结果是false
NaN 即 Not a Number , 不是一个数字,JS中number数据类型中除了浮点型和整数型外的一个特殊的值 NaN。NaN是用来表示是否属于number类型的一种状态: 是或否。它不是一个确切的值。当一个表达式返回了NaN 时,表示该表达式中存在不可以转化的变量,并返回了无效的结果,而不是返回了一个确切的值。如果非要说NaN是一个值得话,那么 NaN 就是除数字外的任意值,绝不是确切的某一个值。因为它是一个范围,而不能代表一个确定的值,所以 NaN 不等于 NaN。
typeof( typeof(变量/数据) ) 执行结果永远是 string
因为typeof(变量/数据)得到的结果可能是number/boolean/string/undefined/object ,所以typeof( typeof(变量/数据) )就是typeof( number/boolean/string/undefined/object )此时存储的一定是字符串数据,所以typeof( typeof(变量/数据) ) 执行结果永远是 string。

undefined  null  true  false  NaN 虽然都是字符但是他们都是一种数值,不是字符串。执行 + 加号 运算时 执行的是 加法运算
    ''  ""  只有的带引号的内容,才是 字符串 才会执行字符串拼接
    NaN + NaN ?  NaN 
    因为 NaN 是数值执行的是加法运算。只要是有NaN参与的算数运算,结果都是 NaN

转化 将一种类型的数值变成另一种类型的数值
自动转化: 计算机程序执行执行的
转化为布尔类型 : if() 中执行
false : 0 ‘’ undefined null NaN 只有这5个是false,其他所有的数据,都是转化为true

转化为字符串 : 字符串拼接时
    基本数据类型直接转化为字符串形式 
    引用数据类型 
        数组 : 将 [] 内的数据,转化为字符串
        对象 : 一律转化为 [object Object]
        函数 : 将函数的所有内容,都转化为字符串

转化为数值 : 执行数学运算时
    布尔类型 : ture--->1  false--->0
    undefined : NaN
    null : 0
    字符串 : 是纯数字的,会转化为对应的数值;有不符合数值规范的,转化为 NaN

强制转化 : 程序员人为执行的转化

转化为布尔类型 Boolean(数值 / 变量)
    原则就是自动转化原则,不会改变,变量中存储的数值

转化为字符串  String(变量 / 数据)

    + 字符串拼接:原则与自动转化原则相同,不会改变变量中存储的数据

    变量.toString(进制)    将数值,按照进制转化为对应的字符串输出,进制范围是 2-36

    
转化为数值
    Number(数值/变量):与自动转化原则相同,不会改变,变量中存储的数值

    parseInt(数值/变量)
    从数据的左侧起 获取数据的整数部分;布尔类型 undefined null  对象  函数 ---> NaN;数组 是获取数组中第一个单元的整数部分
         有整数部分,执行结果就是这个整数部分的内容, 没有整数部分,执行结果是 NaN
    数值整数正常获取,浮点数获取小数点之前的部分
    字符串  整数,是正常获取
            浮点数,获取整数部分,也就是小数点之前
            科学计数法 获取 e字符串之前的整数部分
            带有不符合数值规范的内容,获取从左侧起,符合整数规范的部分


    parseFloat(数值/变量)
    从数据的左侧起获取数据的整数部分
    布尔类型 undefined null  对象  函数 ---> NaN
    数组 是获取数组中 第一个单元的 整数部分
         有整数部分,执行结果就是这个整数部分的内容
         没有整数部分,执行结果是 NaN
    数值 整数,浮点数都是正常获取
    字符串  整数,是正常获取
            浮点数,是正常获取浮点数部分
            科学计数法 会解析成浮点数来获取结果
            带有不符合数值规范的内容,获取从左侧起,符合整数规范的部分
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值