const answer = confirm()
について、本講座で以下の言葉がありました。
1:08
この返り値ですが、ユーザーが OK を押したら true 、キャンセルを押したら false になるので、それに応じて条件分岐をすることができます。
MDN でも以下の記載がありました。
result は、OK ( true ) とキャンセル ( false ) のどちらが選択されたかを示す真偽値です。ブラウザがページ内ダイアログを拒否している場合、 result は常に false です。
以上から、confirm()
はユーザーの選択によってtrue
とfalse
を自動で判断すると思っています。
その上で以下のコードの、特に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だったら」という意味になるように初めから決まっていますか?
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?