'Number.parseInt()','Number.parseFloat()','Number()'或'+'之间的关键区别是什么?

Lap*_*pys 3 javascript methods numbers function

这里的基本问题是我如何知道何时使用和

每个人之间的关键区别是什么:

  • Number.parseInt方法(或只是parseInt),
  • Number.parseFloat方法(或只是parseFloat),
  • Number() 功能(或类?),
  • +操作员

用于将JavaScript值(主要是String's)转换为数字.

特别是因为所有这些都给出了类似的值并且可以转换String为它的Number表示:

Number.parseInt("2")   // returns 2
Number.parseFloat("2") // returns 2
Number("2")            // returns 2
+"2"                   // returns 2

/* Plus a few more methods... */
eval("2")              // returns 2
JSON.parse("2")        // returns 2
Run Code Online (Sandbox Code Playgroud)

lla*_*ama 6

  • Number.parseInt方法(或只是parseInt)

    • 忽略前导和尾随空格
    • 将前导数字解析为整数(不是浮点数)
    • 忽略无效的尾随数据
    • 允许您设置解释数字时使用的基数
    • 0x如果没有提供另一个基数,将解释以十六进制开头的文本
    • 返回NaN如果该值不能被成功地解析为一个整数
  • Number.parseFloat方法(或只是parseFloat)

    • 类似于parseInt,但它允许解释小数部分
    • 只解析到base-10
  • Number() 功能(或类?)

    • 类似于parseFloat,但不允许尾随文本
    • 将返回0空字符串或仅包含空格的字符串
    • 这不是一个阶级; 当没有调用时new,它返回一个原始数字
  • +运营商

    • 基本相同Number(),但以运营商的形式.
  • eval()

    • 解释并执行作为JavaScript程序的给定输入.
    • 给定字符串"2",它将被解释为数字文字,并返回该值,因为它是程序中最后一个表达式的结果
    • 如果输入不是有效程序,则会引发错误.
  • JSON.parse()

    • 将文本数据解析为JSON序列化数据.
    • 如果数据有效,它将创建由数据表示的JavaScript对象/基元,并返回它们.
    • 如果数据无效,则会引发错误.
    • 给定字符串"2",它将被解释为数字文字,并根据JSON的解析要求返回已成功解析出的值.

因此,您可以根据其功能决定使用哪种方法.