変数があります。それをtoto
と呼びましょう。
このtoto
は、undefined
、null
、文字列、またはオブジェクトに設定できます。
toto
がデータに設定されているかどうか、つまり文字列またはオブジェクトに設定されており、undefined
もnull
でもないことを確認し、対応するブール値を別の変数に設定する最もクリーンな方法が欲しいです。
私は構文!!
を考えました、それは次のようになります:
var tata = !!toto; // tata would be set to true or false, whatever toto is.
Totoがfalse
またはundefined
およびnull
elseの場合、最初の!
はtrue
に設定され、2番目はそれを反転します。
しかし、それは少し不気味に見えます...だからそうするためのより良い/よりきれいな方法はありますか?
私はすでに この質問 を見ましたが、if
ステートメントで値をチェックするだけでなく、変数に値を設定したいのです。
はい、いつでも使用できます:
var tata = Boolean(toto);
そして、ここにいくつかのテストがあります:
for (var value of [0, 1, -1, "0", "1", "cat", true, false, undefined, null]) {
console.log(`Boolean(${typeof value} ${value}) is ${Boolean(value)}`);
}
結果:
Boolean(number 0) is false
Boolean(number 1) is true
Boolean(number -1) is true
Boolean(string 0) is true
Boolean(string 1) is true
Boolean(string cat) is true
Boolean(boolean true) is true
Boolean(boolean false) is false
Boolean(undefined undefined) is false
Boolean(object null) is false