rempei
@rempei

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

const xx = oo || null このコードの意味

解決したいこと

下記のコードはどういう意味でしょうか?
xxにooまたはnullを入れるという意味なのでしょうか?
その場合はどちらを入れることになるのでしょうか?

該当するソースコード

const xx = oo || null
0

2Answer

論理和(||)は左辺がtrueになりうる値(Truthy)であれば左辺を返し、そうでなければ右辺を返します。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Logical_OR

ですので、質問にあるソースコードであればooの値が何かによってどちらがxxに入るかが変わります。


例1

const text = 'value' || null

console.log(text) // → value

例2

const text = 0 || null

console.log(text) // → null

falseになりうる値(Falthy)については下記も参考にしてみてください。
https://qiita.com/katsuo5/items/ffb8b83c6b8a6dcbd9d6

1Like

Comments

  1. @rempei

    Questioner

    ご回答ありがとうございます。
    リンクから例2は分かったのですが
    例1はconsole.logで表示できるかもしれないから
    valueが入るということでしょうか?
  2. 表示できるかもしれないの意味が分かりかねますが、
    例1は左辺の文字列"value"がTruthyですのでそのまま出力されています。

    下記のようにしてもどちらとも左辺が出力されますし、
    const text = 123 || null
    const text = true || null

    下記のように変数に入れてもそれがTruthyであれば同様に左辺が出力されます。
    const value = 123
    const text = value || null
    console.log(text) // → 123
  3. @rempei

    Questioner

    const text = 'value' || null
    この式で左辺がtrueであるとはどういうことですか?
  4. 以下のサイトで説明されている内容でご理解いただけますでしょうか?
    https://www.javadrive.jp/javascript/ini/index9.html#section2

    空の文字列はFalthyとなる一方でそれ以外の文字列はTruthyとみなされます。
    'value'は空ではない文字列ですのでTruthyとなり、console.log(text)の結果が'value'となります。
    これはもちろん'value'ではなく'あいう'や"abc"、`アイウ`も同様です。


    @ddg171 さんが添付してくださっているやめ太郎さんの記事がわかりやすいかと思うのでそちらもご確認ください。

Comments

  1. @rempei

    Questioner

    めちゃめちゃ分かりやすかったです!
    ありがとうございました!

Your answer might help someone💌