【问题标题】:What's the difference between "number" and Number in javascript when iterating over an object?迭代对象时,javascript中的“数字”和数字有什么区别?
【发布时间】:2020-09-20 17:57:19
【问题描述】:

这是一个对象。

let menu = {
  width: 200,
  height: 300,
  title: "My menu"
};

这是正确的代码

function multiplyNumeric(obj) {
  for (let key in obj) {
    if (typeof obj[key] == 'number') {
      obj[key] *= 2;
    }
  }
}

这是我的代码

function multiplyNumeric(obj) {
      for (let key in obj) {
        if (typeof(obj[key]) === Number) {
          obj[key] *= 2;
        }
      }
    }

请告诉我有什么不同?

【问题讨论】:

  • typeof(obj[key]) === Numberfalse 等价,因为typeof 总是返回一个字符串。

标签: javascript object types


【解决方案1】:

typeof 运算符返回一个包含操作数类型名称的字符串。 Number 是一个将其输入转换为数字的函数。

【讨论】:

    【解决方案2】:

    区别在于'number'是一个字符串,Number是一个内置函数。

    console.log(typeof "number") //string
    console.log(typeof Number) //function
    

    【讨论】:

      【解决方案3】:

      正如 Jonas Høgh 指出的那样,Nummer 是一个 JavaScript 函数

      了解Number 函数的简单示例:

      console.log(Number(true));
      console.log(Number(false));
      console.log(Number(new Date()));
      console.log(Number("999"));

      【讨论】:

        【解决方案4】:

        Number() 是 Javascript 函数将对象参数转换为表示对象值的数字。 如果该值不能转换为合法数字,则返回 NaN。

        typeof(obj[key])函数返回,值是什么类型,比如'number'和string等

        【讨论】:

          猜你喜欢
          • 2013-09-19
          • 2020-04-14
          • 1970-01-01
          • 1970-01-01
          • 2014-01-26
          • 1970-01-01
          • 1970-01-01
          • 2013-06-19
          相关资源
          最近更新 更多