Qraft(クラフト) 資格・学習クイズアプリ

JavaScript入門 練習問題 77:構文:厳格モード

📊 Qraftユーザーの成績

  • 難易度 Bランク(レーティング1200)
  • 難易度 766位/2795問中
  • 正答率 —(0回)
レーティングは解いた人の実力と正誤から算出する難しさ(初期値1200)。ランクはその全問題中の順位(S+が最難関、F-が最易)

次のコードを実行したときの実行結果として正しいものはどれですか?

```javascript
"use strict";
message = "Hello";
console.log(message);
```

  1. 変数宣言がないためエラーとして扱われる。
  2. 正常に処理され Hello が出力される。
  3. undefined が出力されて終了する。
  4. グローバル変数として自動的に処理される。
  5. 警告は出るが Hello は出力される。
正解と解説を見る
正解:変数宣言がないためエラーとして扱われる。

`"use strict";` をファイルの先頭などに記述すると、JavaScriptは厳格モード(strictモード)で実行され、安全でない構文がエラーとして扱われます。正解はエラーが発生するという選択肢です。

【正解の理由】
通常のモードでは `let` や `const` を付けずに変数に代入すると自動的にグローバル変数として扱われますが、厳格モードでは宣言されていない変数への代入は `ReferenceError` となり実行が停止します。

【不正解の理由】
• 「正常に処理され Hello が出力される。」は、厳格モードの制限を無視しているため誤り
• 「undefined が出力されて終了する。」は、エラーにならず未定義値になるという説明が誤り
• 「グローバル変数として自動的に処理される。」は、通常のモード(非厳格モード)での挙動であり誤り
• 「警告は出るが Hello は出力される。」は、警告に留まらず致命的なエラーとして停止するため誤り

← 前の問題問題一覧
アプリで解いてレーティングを上げる(無料・登録不要)