&& = and , || =or はちょっと違う
sample.js
const val = 0;
const result = val || "値を設定してください";
console.log(result);
「 && は and 、|| は or 」なんやな~と覚えていた私は上記ようなコードを見て、なんだこれは(なんなんだこれは)となりました。
調べてみると、 truthy 、 falsy という概念が関わってくることが分かったので個人的メモとしてまとめます。
truthyとfalsy
truthy: 条件式においてtrue
とされる値
falsy: 条件式においてfalse
とされる値
falsy になる場合が少ないのでこちらを覚えると良い
値 | 型 |
---|---|
false | boolean |
0 | number |
-0 | number |
0n | bigint |
"" | String |
null | null |
undefined | undefined |
NaN | number |
これ以外はすべて truthy と覚えましょう
&& , ||との併用
trthy 、falsy の概念が分かった所で、&& と || について説明すると
&&:左から順番に見て行って最初にfalsyの値を返す
truthy.js
//valがtruthyの場合
const val = 10;
const result = val && "値が入っています";
console.log(result);//コンソールに"値が入っています"が表示される
falsy.js
//valがfalsyの場合
const val = 0;
const result = val && "値が入っています";
console.log(result);//コンソールに0が表示される
これは、 &&
の左側のval
が、 truthy であるとval
を通り過ぎて"値が入っています"
が返却され、 falsy であるとその時点でval
が返却されます。
||:左から順番に見て行って最初にtruthyの値を返す
truthy.js
//valがtruthyの場合
const val = 10;
const result = val || "値が入っていません";
console.log(result);//コンソールに10が表示される
falsy.js
//valがfalsyの場合
const val = 0;
const result = val || "値が入っていません";
console.log(result);//コンソールに"値が入っていません"が表示される
これは、 &&
の左側のval
が、 truthy であるとその時点でval
を返却して、 falsy であるとval
を通りすぎて"値が入っていません"
が返却されます。
さいごに
jsのtruthy、falsy について知ることが出来ました。
React等でよく使用されるようなので、Reactを用いたアプリ開発をしようとしているこの時期に学習出来て良かったです。
参考資料