JS中把其它类型转成数字的方法及规则是什么?

在JavaScript中,可以使用多种方式将其他类型转换为数字。以下是一些常见的方法和规则:

  1. Number() 函数
    Number() 函数可以用来将任何类型的数据转换为数字。其规则如下:

    • 如果参数是布尔值,true 转换为 1,false 转换为 0。
    • 如果参数是数字,则返回该数字(无转换)。
    • 如果参数是 null,返回 0。
    • 如果参数是字符串,遵循以下规则:
      • 如果字符串只包含数字(可能还有一个小数点),则转换为相应的数字。
      • 如果字符串是一个合法的十六进制数字(以 "0x" 或 "0X" 开头),则转换为相应的十进制数字。
      • 如果字符串为空,返回 0。
      • 如果字符串包含非数字字符,返回 NaN(Not a Number)。
    • 如果参数是对象,则尝试调用对象的 valueOf() 方法来获取一个原始值,然后再按上述规则转换。如果 valueOf() 方法不存在或返回的还是对象,则尝试调用 toString() 方法。
  2. parseInt() 和 parseFloat() 函数
    parseInt() 和 parseFloat() 主要用于将字符串转换为数字。

    • parseInt(string, radix):解析一个字符串并返回一个整数。radix 参数指定了字符串的基数(即进制),如果不提供 radix,JavaScript 默认将字符串作为十进制解析,除非字符串以 "0x" 或 "0X" 开头,此时会作为十六进制解析。如果字符串以非数字字符开头,parseInt() 会返回 NaN。
    • parseFloat(string):解析一个字符串并返回一个浮点数。字符串中的第一个有效数字序列(包括一个可选的小数点)会被解析为数字。如果字符串以非数字字符开头,parseFloat() 会返回 NaN。
  3. 隐式类型转换(Coercion)
    在某些情况下,JavaScript 会自动将值转换为数字,例如在进行数学运算时。这种转换通常遵循与 Number() 函数相似的规则。

  4. 一元加号(+)操作符
    使用一元加号(+)操作符可以将操作数转换为数字。它基本上等同于调用 Number() 函数,但语法更简洁。

示例:

var num = +"123"; // num 现在是数字 123
  1. 二进制、八进制和十六进制字面量
    JavaScript 也支持二进制(以 0b 或 0B 开头)、八进制(以 0 开头)和十六进制(以 0x 或 0X 开头)字面量,它们会在代码解析时自动转换为十进制数字。

请注意,虽然 JavaScript 提供了多种将其他类型转换为数字的方法,但不同的方法可能适用于不同的场景和数据类型。在选择转换方法时,请考虑输入数据的特性和所需的输出格式。

posted @   王铁柱6  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示