For-In循环结果是否为undefined或null?

时间:2016-11-03 01:55:42

标签: javascript sonarqube

这是我的代码:

const a = function(obj) {
  for (let key in obj) {
    if (!obj.hasOwnProperty(key)) {
      continue;
    }
    console.info(key.split('_'));
  }
};
a({a_b: 123});

我认为没有任何问题,但SonarQube给了我一个严重的错误:

  

可以抛出TypeError,因为“key”可能为null或未定义。

key.split('_')中的一词突出显示。这里指示变量键可以是undefined / null。

我尝试传递类似{[undefined]: 123}的内容,变量变为字符串“undefined”而不是真正的未定义。

因此。我想知道在任何可能的情况下密钥都是undefined / null吗?或者它只是一个误报?

以下是截图:

Picture

1 个答案:

答案 0 :(得分:8)

SonarQube JavaScript分析器中的known bug是几个月前修复的。您应该升级到最新版本的JavaScript插件。