見出し画像

【ワンピースで覚えるJavaScript】間違いやすい真偽値5選 (入門者必見)

JavaScriptの真偽値で間違いやすいところを紹介します。

let onepiece = ""; 空文字
if (onepiece) {
     result.innerText = "ワンピースの正体を知っている";
} else {
     result.innerText = "ワンピースはまだ分からない";
}

=>ワンピースはまだ分からない

空文字は偽ですね。

let onepiece = "false";   falseという文字
if (onepiece) {
     result.innerText = "ワンピースの正体を知っている";
} else {
     result.innerText = "ワンピースはまだ分からない";
}

=>ワンピースの正体を知っている

falseでも文字列なら真です

let code_name = 0;    0という数値
if (code_name) {
     result.innerText = "正体はクロコダイル";

} else {
     result.innerText = "正体は不明!";
}
=>正体は不明!

0は偽です!

let code_name = 0/0;     NaNになる例
if (code_name) {
     result.innerText = "正体はクロコダイル";
} else {
     result.innerText = "正体は不明!";
}
=>正体は不明!

NaNも偽ですね!数値はこの2つです!!

let joy_boy = [];    空配列
if (joy_boy) {
     result.innerText = "ジョイボーイは存在";
} else {
     result.innerText = "ジョイボーイは架空";
}
=>ジョイボーイは存在

配列は空でも真

let joy_boy = {};    空のオブジェクト
if (joy_boy) {
     result.innerText = "ジョイボーイは存在";
} else {
     result.innerText = "ジョイボーイは架空";
}
=>ジョイボーイは存在

空オブジェクトも真

let joy_boy = {};    空のオブジェクト
if (Object.keys(joy_boy).length) {
     result.innerText = "ジョイボーイは存在";
} else {
     result.innerText = "ジョイボーイは架空";
}
=>ジョイボーイは架空

偽扱いしたい場合はlength を使う

let devil_fruits;    undefined
if (devil_fruits === false) {
     result.innerText = "悪魔の実は今だに謎";
} else {
     result.innerText = "悪魔の実のすべてが解明";
}
=>悪魔の実のすべてが解明

直接falseと比較しない

let devil_fruits;    undefined
if (!devil_fruits) {
     result.innerText = "悪魔の実は今だに謎";
} else {
     result.innerText = "悪魔の実のすべてが解明";
}
=>悪魔の実は今だに謎

一度trueやfalseに変換しよう!

いいなと思ったら応援しよう!