関数を作成する以外に、JavaScriptでのみ値がundefined
、null
またはfalse
であるかどうかを確認する簡単な方法はありますか?
以下のifステートメントはif(val===null && val===undefined val===false)
と同等ですコードは正常に動作します。短い同等のものを探しています。
if(val==null || val===false){
;
}
上記val==null
は、val=undefined
または val=null
。
ビット単位の演算子、または他のトリックを使用することを考えていました。
さて、あなたはいつでも「あきらめる」ことができます:)
function b(val){
return (val==null || val===false);
}
それを行う最良の方法は次のとおりです。
if(val != true){
//do something
}
Valがfalse、NaN、またはundefinedの場合、これはtrueになります。
あなたが探しているのは!!val==false
であると思います-!val
(さらに短く)に変えることができます:
分かりますか:
function checkValue(value) {
console.log(!!value);
}
checkValue(); // false
checkValue(null); // false
checkValue(undefined); // false
checkValue(false); // false
checkValue(""); // false
checkValue(true); // true
checkValue({}); // true
checkValue("any string"); // true
!
演算子を使用して値を反転することで機能します。
たとえばnull
を1回フリップすると、次のようになります。
console.log(!null) // that would output --> true
そのように2回ひっくり返すと:
console.log(!!null) // that would output --> false
undefined
またはfalse
と同じです。
あなたのコード:
if(val==null || val===false){
;
}
その後、次のようになります。
if(!val) {
;
}
これは、文字列があっても長さがゼロの場合でもすべての場合に機能します。これを数値0(ダブルフリップするとfalse
になります)でも動作させたい場合、ifは次のようになります。
if(!val && val !== 0) {
// code runs only when val == null, undefined, false, or empty string ""
}
その方法の1つは次のとおりです。
var acceptable = {"undefined": 1, "boolean": 1, "object": 1};
if(!val && acceptable[typeof val]){
// ...
}
制限があれば、チェックが高速になるため、操作の数が最小限に抑えられると思います。
別の解決策:
ドキュメントに基づいて、値が0、未定義、nullなどでない場合、Booleanオブジェクトはtrueを返します。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean
値が省略されるか、0、-0、null、false、NaN、未定義、または空の文字列( "")の場合、オブジェクトの初期値はfalseです。
そう
if(Boolean(val)) { // executable ... }
私が知っているこのようなものへの唯一のショートカットは
var val;
(val==null || val===false) ? false: true;
以下のようにしてみてください
var Boolify = require('node-boolify').Boolify;
if (!Boolify(val)) {
//your instruction
}
node-boolify を参照してください
Boolean(val)=== false。これは、値が間違っているかどうかを確認するのに役立ちました。
を使用しますか?ずっときれいです。
var ? function_if_exists() : function_if_doesnt_exist();