gpt4 book ai didi

javascript - 为什么 Number ('' ) 和 Number ('null' ) 返回 0

转载 作者:行者123 更新时间:2023-11-28 12:56:22 30 4
gpt4 key购买 nike

根据MDN

If the argument cannot be converted into a number, it returns NaN

能否解释一下为什么 Number('')Number(null) 返回 0 因为没有有效的数字。
首先我认为这可能是因为它们是错误的值。但后来我发现 Number(undefined) 不返回 0

console.log(Number(undefined)); //NaN
console.log(Number(null)); //0
console.log(Number('')); //0

最佳答案

纯粹是因为规范是这么说的,here并链接到here 。据我所知,没有比这更深层的逻辑了。第二个链接显示了 Number (当作为函数调用时)根据输入类型执行的操作:

  • Undefined => Return NaN.
  • Null => Return +0.
  • Boolean => If argument is true, return 1. If argument is false, return +0.
  • Number => Return argument (no conversion).
  • String => See grammar and conversion algorithm below.
  • Symbol => Throw a TypeError exception.
  • Object => Apply the following steps:
    • Let primValue be ? ToPrimitive(argument, hint Number).
    • Return ? ToNumber(primValue).

“下面的语法和转换算法”除其他外还指出:

The MV [mathematical value] of StringNumericLiteral ::: [empty] is 0.

关于javascript - 为什么 Number ('' ) 和 Number ('null' ) 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55124584/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com