if文の条件文としてオプショナルチェイニングを使用した時の
挙動について、想定していた挙動とは異なる動きとなりました。
まず、サンプルコードとして下記のようなコードを作成しました。
js
1const hoge = [1, 2, 3, 4, 5] 2const fuga = undefined 3 4const checkArray = (item) => { 5 if (item?.length !== 0) { 6 console.log("item is array!") 7 } else { 8 console.log("item is not array!") 9 } 10} 11checkArray(hoge)
このコードの出力結果は当然下記のようになります。
item is array!
checkArrayメソッドにfugaを引数として持たせた場合は、
if文ではなく、else文へと入り、"item is not array"が
出力されると思っていました。
しかし、出力結果は最初と同様の"item is array"となりました。
今回のケースでは、なぜitemがundefinedの場合にif文内の
console.logが呼び出されてしまうのでしょうか?
ご教示いただけますと幸いです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/19 02:59