1. ホーム
  2. javascript

[解決済み] truthy や falsy を明示的なブール値、すなわち True や False に変換する。

2022-05-14 03:54:19

質問

ある変数を持っています。これを toto .

これは toto を設定することができます。 undefined , null 或いは文字列、或いはオブジェクト。

をチェックしたいのですが toto がデータ、つまり文字列やオブジェクトに設定されているかどうか、また、どちらも undefined でもなく null という変数があり、対応するブール値を別の変数に設定します。

という構文が思いつきました。 !! という、こんな感じでしょうか。

var tata = !!toto; // tata would be set to true or false, whatever toto is.

最初の ! には false であれば、totoは undefined または null そして 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