var name = "someName";
if(name !=null) {
// do something
}
underscore.js
を使用して同じことを行うにはどうすればよいですか。アンダースコアでは、次を使用できます
if(!_.isNull(name)) {}
プレーンなJavascriptでは、
if(name !== null) {}
緩い不等式演算子!=
は型強制を行い、undefined != null
はfalse
を返すため、避ける必要があります。
プレーンなJavascriptを使用すると、関数を呼び出す必要がないため少し高速になりますが、気付かないため、考慮すべきことはほとんどありません。
読みやすさに関しては、どちらの方法でも強い好みはありませんが、このような単純なチェックのためにライブラリ関数を呼び出すのは少し過剰で冗長なようです。
Underscore.jsでは、その機能を実現するためにこれを記述する必要があります。
var name = "someName";
if(!(_.isNull(name ))) {
// do something
}
Underscore.js関数ではisNull
は次のように記述されています
_.isNull = function(obj) {
return obj === null;
};
したがって、違いは、コードで==
を使用し、underscore.jsで===
を使用することです。この違いの詳細については、この質問を参照してください。
JavaScriptの比較ではどちらの演算子(== vs ===)を使用する必要がありますか?
P.S.このような単純な場所でライブラリを使用する代わりに、独自の条件を作成することをお勧めします。
var name = "someName";
if(name !== null)) {
// do something
}
name
が空の文字列、false
、数値_0
_、またはその他の偽の値である場合、null
と見なされるため、元のコードには欠陥があります。あなたのテストに関する限り。
原則として、ANY関数の呼び出しはオーバーヘッドであり、可能であれば回避する必要があります。この場合、値がnullかどうかをテストするためだけに関数を呼び出すと、非常に簡単にif( name === null)
と書くことができますが、これはばかげています、IMO ...
if ((!(_.isUndefined(data)) || _.isEmpty(data))) {
//Valid Data
}else {//Not Valid}