2016-11-03 7 views
5

これは私のコードです:For-Inループの結果は、未定義またはヌルになりますか?

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

私はまったく問題がないと思ったが、SonarQubeは私に重大なエラーを与える:

TypeError can be thrown as "key" might be null or undefined here.

単語キーでkey.split( '_ ')が強調表示されます。可変キーの表示はここでは未定義/ nullにすることができます。

私は{[undefined]: 123}のようなものを渡そうとしましたが、変数のキーは、実際には定義されていない文字列になります。

したがって。私はキーが未定義/任意の可能な状況でnullになるのだろうか?それとも、偽陽性ですか?

Picture

+0

@Aᴍɪʀこれはタイプミスで、console.infoはforループ内にあり、エラーは依然として存在します。 – SCLeo

+0

'key'は更新された質問で定義されます。あなたが何を決定しようとしているかわからない? – guest271314

+3

Hmmm。 SonarQubeにバグがあるかもしれません。私はそれで働いたことがない。オブジェクト内のキーは常に文字列なので、 'key'が' undefined'になることはありません。 –

答えて

8

数ヶ月前に修正されましたSonarQube JavaScriptのアナライザでknown bugです:ここで

はスクリーンショットです。 JavaScriptプラグインの最新バージョンにアップグレードする必要があります。

関連する問題