【问题标题】:When does x not equal x? [duplicate]x 什么时候不等于 x? [复制]
【发布时间】:2021-01-19 16:32:58
【问题描述】:

在审核“verb”(NURB 库)的 Javascript 版本时,我遇到了这种方法:

HxOverrides.cca = function(s,index) {
  var x = s.charCodeAt(index);
  if(x != x) return undefined;
  return x;
};

我对这种情况感到困惑,

如果(x != x)

什么时候是真的?

【问题讨论】:

  • 虽然这个问题涉及相同的规范细节,但问题是不同的:这个问题提出了一个特定的问题。为了解决“重复”问题,必须已经推断出 NaN 不等式是问题的核心。此外,第一个“重复”甚至不是问题。
  • 只要答案足以回答您的问题,我认为问题本身更具体没有问题。
  • 如果那是一个好的库,它应该包含这种情况的测试用例。您可以检查包含其测试套件的库,更改条件,然后让测试运行
  • 我的意思是学生可能会遇到这种情况,并且像我一样,不知道它与 NaN 类型有关,即我们不应该期望提出问题的人已经知道回答。

标签: javascript unicode


【解决方案1】:

further reading 中,我发现了 Javascript 方法,“s.charCodeAt(index)”返回字符串 's' 中第 (index) 个字符的 Unicode 值。具体来说:

如果索引超出范围,charCodeAt() 返回 NaN。

在控制台中,我测试了:

NaN == NaN

我发现这是错误的。因此,关于以下问题:

“什么时候x不等于x?”

答案(至少在 Javascript 中)是:

“当 x 为 NaN(非数字)时,x != x”。

【讨论】:

    猜你喜欢
    • 2021-09-21
    • 2019-11-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 2019-12-02
    • 1970-01-01
    • 2022-01-24
    • 2021-10-07
    相关资源
    最近更新 更多