美文网首页
js关于数值类型转换知多少?

js关于数值类型转换知多少?

作者: _静夜听雨_ | 来源:发表于2021-12-08 10:46 被阅读0次

数值类型,是我们开发中经常用到的类型,那关于它的类型转换,你是否完全了解呢,趁着最近有时间,我们来重新学习一下。
首先我们知道可以进行数值类型转换的函数有3个:Number()、parseInt()和 parseFloat()。Number()是 转型函数,可用于任何数据类型。后两个函数主要用于将字符串转换为数值。

Number()

布尔值,true 转换为 1,false 转换为 0。  数值,直接返回。
 null,返回 0。
 undefined,返回 NaN。
 字符串,应用以下规则。
 如果字符串包含数值字符,包括数值字符前面带加、减号的情况,则转换为一个十进制数值。 因此,Number("1")返回 1,Number("123")返回 123,Number("011")返回 11(忽略前面 的零)。
 如果字符串包含有效的浮点值格式如"1.1",则会转换为相应的浮点值(同样,忽略前面的零)。
 如果字符串包含有效的十六进制格式如"0xf",则会转换为与该十六进制值对应的十进制整
数值。
 如果是空字符串(不包含字符),则返回 0。
 如果字符串包含除上述情况之外的其他字符,则返回 NaN。
 对象,调用 valueOf()方法,并按照上述规则转换返回的值。如果转换结果是 NaN,则调用 toString()方法,再按照转换字符串的规则转换。

parseInt()

parseInt()函数更专注于字符串是否包含数值模式。字符串最前面的空格会被 忽略,从第一个非空格字符开始转换。如果第一个字符不是数值字符、加号或减号,parseInt()立即 返回 NaN。这意味着空字符串也会返回 NaN(这一点跟 Number()不一样,它返回 0)。如果第一个字符 是数值字符、加号或减号,则继续依次检测每个字符,直到字符串末尾,或碰到非数值字符。比如, "1234blue"会被转换为 1234,因为"blue"会被完全忽略。类似地,"22.5"会被转换为 22,因为小数 6 点不是有效的整数字符。
假设字符串中的第一个字符是数值字符,parseInt()函数也能识别不同的整数格式(十进制、八 进制、十六进制)。换句话说,如果字符串以"0x"开头,就会被解释为十六进制整数。如果字符串以"0" 开头,且紧跟着数值字符,在非严格模式下会被某些实现解释为八进制整数。
不同的数值格式很容易混淆,因此 parseInt()也接收第二个参数,用于指定底数(进制数)。如 果知道要解析的值是十六进制,那么可以传入 16 作为第二个参数,以便正确解析。
因为不传底数参数相当于让 parseInt()自己决定如何解析,所以为避免解析出错,建议始终传给
它第二个参数。

parseFloat()

parseFloat()函数的工作方式跟 parseInt()函数类似,都是从位置 0 开始检测每个字符。同样, 它也是解析到字符串末尾或者解析到一个无效的浮点数值字符为止。这意味着第一次出现的小数点是有 效的,但第二次出现的小数点就无效了,此时字符串的剩余字符都会被忽略。因此,"22.34.5"将转换 成 22.34。
parseFloat()函数的另一个不同之处在于,它始终忽略字符串开头的零。这个函数能识别前面讨 论的所有浮点格式,以及十进制格式(开头的零始终被忽略)。十六进制数值始终会返回 0。因为 parseFloat()只解析十进制值,因此不能指定底数。最后,如果字符串表示整数(没有小数点或者小 数点后面只有一个零),则 parseFloat()返回整数。

相关文章

  • js中parseInt()与parseFloat(),Numb

    js将字符串转数值的方法主要有三种 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供了...

  • 03-数据类型转换

    数值类型转换 C语言中存在显式转换和隐式转换 Go语言中只有显式转换 Go语言中数值类型转换注意点 数值类型转换为...

  • javascript强制类型转换

    javascript强制类型转换 一、转换为数值类型 Number(参数) 把任何类型转换为数值类型A.如果是布尔...

  • JS基础1

    转换为数值 JS提供三个函数进行数值的转换。(1)Number() 不常用它可以用于任何数据类型 (2)pars...

  • 你不知道的JS(中卷)笔记——类型和语法总结

    本文目录 JS的基本类型 特殊数值和数字 原生函数 强制类型转换 运算符 try finally 类型判断及其原理...

  • javaScript中数据类型转换方法

    JS 数据类型转换 方法主要有三种 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供了...

  • 数据类型转换

    JS 数据类型转换 方法主要有三种 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供了...

  • ## JS初识

    ## JS初识 # js初识 # js注释 # 变量 # 变量的命名 JS数值的类型 # Number类型 # S...

  • Swift 中的 as、as! 和 as?

    1. 关于as 将子类转换为基类 数值类型转换 switch 中的模式匹配 Swift中可以通过switch语法检...

  • JS 里的数据类型转换

    本篇主要介绍一些有关于JS的数据类型转换的小知识 类型转换 转换字符串类型 通过console.log()打印出来...

网友评论

      本文标题:js关于数值类型转换知多少?

      本文链接:https://www.haomeiwen.com/subject/vccffrtx.html