検索

ホームページ  >  に質問  >  本文

JavaScript - オペレーター操作の問題

n とガードが存在しない場合は、n==null が true となり、三項演算子ではガードが未定義になります。ブール値を false に変換すると、n と等しくなります。つまり、最終的な戻り値は次のようになります。未定義。
しかし、なぜ 1 が返されるのでしょうか?

リーリー
怪我咯怪我咯2864日前564

全員に返信(2)返信します

  • 仅有的幸福

    仅有的幸福2017-05-19 10:35:27

    まず、操作の順番を間違えています

    リーリー

    || (論理和) の演算の優先順位は、三項演算子

    の優先順位よりも高くなります。

    つまり (n==null || Guard ? 1 : n) は、最初に論理和を計算し、次に三項演算子を計算します

    ここではtrue ? 1 : n
    となるので、出力n
    どの本から取ったか覚えていない

    操作の優先順位の写真を添付し​​ます。

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-19 10:35:27

    リーリー

    ||優先度は三眼より高いので、(true || ガード) 1:n ===> 1 :n

    返事
    0
  • キャンセル返事