x == undefined実際に、-自体と。の2つの値を確認xしundefinedますnull。ただし、宣言されたx変数がないと、ここでエラーが発生することに注意してください。これを防ぐには、...を使用します。
if (typeof x === 'undefined' || x === null) { ... }
nullしかし、実際には、この警告の本当の意味は、コードの1つのブランチで両方をチェックするべきではないということだと思いundefinedます。これらは異なる値であるためです。
ただし、これについて安全だと思われる場合は、オプションを使用して、JSHintでこれらの特定のチェックをオフにすることができeqnullます。それで...
if (x == null) { ... }
null...との両方をチェックしますがundefined、警告はトリガーされません。ただし、== undefinedこのオプションでは比較は「カバー」されないことに注意してください。
補足として、アンダースコアのisUndefinedメソッドは興味深いコードです。
_.isUndefined = function(obj) {
return obj === void 0;
};
これは基本的に単純なものと同じですが、1つの特殊なケースをカバーしています。スクリプト内obj === undefinedのの値を上書きすることをお勧めする場合です。コンストラクトは常に「実際の」を返すためundefined、この関数はこの状況でも正しく機能します。voidundefined