0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JavaScript: truthyとfalsy、およびショートサーキット評価

Last updated at Posted at 2021-01-25

Truthy or Falsy

  • Booleanコンテキストに現れた時に true とみなされる値=truthy
  • Booleanコンテキストに現れた時に false とみなされる値=falsy
  • falsyのものは以下のもののみ。
    • false
    • 0
    • -0
    • 0n
    • "" (空文字)
    • null
    • undefined
    • NaN(Not a Number)

確認

console.log(Boolean(false)); //false
console.log(Boolean(0)); //false
console.log(Boolean(-0)); //false
console.log(Boolean(0n)); //false
console.log(Boolean("")); //false
console.log(Boolean(undefined)); //false
console.log(Boolean(NaN)); //false

これ以外のものは全部truthyである。例えば、すごく奇妙なことではあるが、以下の結果はtrueである。

console.log(Boolean(new Boolean(false))); //true

#利用例1:変数チェック

文字列が空であるかどうかのチェック
function helloname(name) {
    //nameが空であるかどうかのチェック
    if (!name) {
        name = 'Taro';
    }

    console.log("Hello " + name)
}
helloname();

利用例2:変数チェック+代入を一気にやる方法(ショートサーキット評価)

論理演算子は左から右へ評価されるため、論理演算子で左辺を評価した時点で論理式の結果が確定した場合には右辺の評価を行わないことを、ショートサーキット評価といいます。例えば、A && Bという論理式があった場合、Aがfalseなら、その時点で式全体の結果はfalseで確定するため、Bがどうであるかについてはチェックしません。:

valがtruthyならそのまま代入。valがfalsyなら評価を終了して右項に移動。
let val = "";
let x = val || "Bob";
console.log(x); //Bob
エラーがあればエラーメッセージを表示
error = new Error('foo');
console.log(error && error.message); //foo
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?