confirm と if の組み合わせ方について教えて下さい

順を追って説明していきます。
2021年10月22日
ユーザー

const answer = confirm()について、本講座で以下の言葉がありました。

1:08
この返り値ですが、ユーザーが OK を押したら true 、キャンセルを押したら false になるので、それに応じて条件分岐をすることができます。

MDN でも以下の記載がありました。

result は、OK ( true ) とキャンセル ( false ) のどちらが選択されたかを示す真偽値です。ブラウザがページ内ダイアログを拒否している場合、 result は常に false です。

以上から、confirm()はユーザーの選択によってtruefalseを自動で判断すると思っています。

その上で以下のコードの、特にif()以降について伺います。

> const answer = confirm('削除しますか?');
  if(answer){
    console.log('削除しました');
  } else {
    console.log('キャンセルしました');
  }

このコードでは、if(answer)は「もしユーザーの選択がtrueなら」という意味になり、
一方、elseは「もしユーザーの選択がfalseなら」という意味になると思っています。
この認識が正しい場合、これらはデフォルトとして定められているのでしょうか。

なんとなく、じゃあif(answer === false)にしたらどうなるかと自分でもやってみました。

> const answer = confirm('削除しますか?');
  if(answer === false){
    console.log('削除しました');
  } else {
    console.log('キャンセルしました');
  }

このようなコードで実行してみたところ、
キャンセルを選択したのに、コンソールには「削除しました」と表示されました。
奇妙だけれど、コードと実行結果は矛盾してないと思います。

長くなりましたので、質問をまとめます。

confirm()とともにif()を使うとき、
if(answer === true)などど自分で記入しなくても、
if(answer)は「trueだったら」という意味になり、
elseは「falseだったら」という意味になるように初めから決まっていますか?

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(9)