javascript中的类型转换--总结

本文深入探讨了JavaScript中NAN的概念,详细讲解了数值与字符串之间的转换方法,如Number(), parseInt(), toString(), String()等,并全面解析了一元、乘性、加性、关系、相等及条件操作符的运用,帮助读者掌握JS数据处理核心技巧。

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

1. NAN

isNaN() 方法在接收到一个值之后,会尝试将这个值转换成数值。

2. 数值转换

Number()

Number() 可以传入任何数据类型

  • 输入null, 返回 0
  • 输入Boolean值,true 和 false 将分别转换为 1 和 0 ;
  • 输入undefined, 返回 NaN
  • 输入字符串,返回值如下
    • a. 若字符串只包含数字(整数、十六进制整数或者有效的浮点数), 忽略前导零,返回对应的数值
    • b. 输入空,返回0
    • c. 包含除以上之外的字符,返回NaN

parseInt()

parseInt()只转换字符串

  • 先找到第一个非空格的字符。若是数字字符或者负号,则接着解析第二个字符,直到解析完所有的字符或者遇到了非数字字符,则返回解析出的数字。否则返回NaN。由于小数点并不是有效的数字字符,所以parseInt() 会忽略浮点数的小数部分。
  • 输入对象,先调用valueOf()
  • parseFloat() 只解析十进制值, 可以解析字符串中的第一个小数点。

3. 字符串转换

toString()

  • 数值、布尔值、对象和字符串值都有这个toString()方法, 但是null和undefined没有这个方法,强行使用会报错。
  • 在调用数值的toString()方法时,可以传参(输出数字的基数)

String()

可以将任何类型的值转换成字符串,包括null和undefined

操作符

一元操作符 ++、–

a. 字符串为有效数字字符:先将其转换成数字,再进行运算
b. 字符串含有非数字字符:变量值变为NaN
c. 布尔值:先转换成0或1,在进行运算
d. 对象:先调用对象的valueOf()

乘性操作符

  • 乘法: 若有操作数不是数值,则底层会先调用Number()将其转为数值,再进行运算
  • 除法:
    i. 零被零除,结果为NaN
    ii. 非零的有限数被零除,结果为Infinity
    iii. 有操作数不是数值,先用Number() 转化
  • 求模
    i. 被除数是无穷大值或者除数是0,结果均为NaN

加性操作符

  • 加法:
    i. 有操作数为NaN,结果为NaN
    ii. Infinity + Infinity = Infinity
    iii. Infinity + -Infinity = NaN
    iv. +0 + -0 = +0
    v. 若有操作符为字符串,则将另一个操作符转换为字符串,将两个字符串拼接起来
  • 减法
    i. +0 - 0 = -0
    ii. +0 - +0 = +0
    iii. -0 - -0 = +0

关系操作符

a. 两个操作符均为字符串,比较两个字符串对应的字符编码值
b. 一个操作数是数值,则将另一个操作数转成数值,进行比较

相等操作符

  • == 和 != 会强制转型
    i. 若操作数为字符串或者布尔值,则先转为数值
    ii. null == undefined
    iii. 若有一个或两个操作符为NaN,== 会返回false, !=返回true
    iv. 若两个操作符都是对象,若他们都指向同一个对象,== 返回true, !=返回false
  • === 和!== 只比较未转换之前的操作数

条件操作符

a ? b : c

赋值操作符 简化赋值操作,没有性能提升

a. *= 、/= 、%= 、 += 、 -= 等
~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值