条件演算子の処理それぞれに ; をつけるとエラーになります

条件演算子は ... ? ... : ... 全体で1つの命令なので、その文末に 1 つだけ ; をつけてください。
2022年8月30日
ユーザー

はじめまして。いつも分かりやすいレッスンをありがとうございます。

条件式  ?  true の処理 : false の処理

の「true の処理」の記述の仕方について質問です。

if (score >= 80) {
  console.log('Great'); //<-trueの処理
} else {
  console.log('OK...'); //<-falseの処理
}

この条件を、条件演算子で書き換えようとしたとき
true の処理と false の処理をそのまま持ってきて

score >= 80 ? console.log('Great'); : console.log('OK...');

となるのかなと思ったのですが、ブラウザにて確認した結果、エラーになりました。
レッスン通り、true の処理の ; を外したら正常に動きました。

; は命令の終わりに付けるものということなので、今回の場合、
「条件式に対して true の処理か false の処理を行う」までが一つの命令ということで
true の処理には ; 不要、false の処理の後ろに ; 必要 という認識で良いのでしょうか。

また、試しに true の処理、false の処理、両方共の ; を外して

score >= 80 ? console.log('Great') : console.log('OK...')

と記述してみたところ、エラーなく動作しました。
こちらは、JavaScript の補完機能で、命令終わりに ; がなくても ; を補完してくれる機能が働いているため、正常に動作しているように見えている、ということで良いのでしょうか。

よろしくお願いいたします。

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

プレミアムプランとは?

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