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の0

Last updated at Posted at 2021-09-22

JavaScriptにおいて0は「false」と判定される。0の存在を忘れて真偽値判定していると知らぬ間に0をfalse側にぶち込んでいることがある。

let a = 1;
function fn(num) {
    num = num || -1; //←右辺のnumにundefineもnullもNaNも0も入る
    console.log(num);
}
fn(a);

引数をデフォルト引数num=1にすればいいだろうと思ったけれど、0はよくともnullなどの場合にはデフォルト引数がセットされず、nullがセットされてしまうらしい。なぜ……
(num自体をif文判定してデフォルトの値を引数にセットする記述を追加する必要がある)

0をfalse判定されるとまずいことにならないかどうか、プログラム上で気にかけておく必要がある……がうっかり忘れそうなので、真偽値判定にかける値に0を含めないようにするか、 === 0など直に判定を記述した方がいいかもしれない。

0
0
0

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?