[ペチパーの大冒険] ゲーム制作#06「エラー・クイズ」

2025/01/20

t f B! P L
eyecatch Javascriptプログラミングの間違えやすいポイントクイズの2回目です。 今回も、10問用意してみたので、クイズに答えてみて勘違いポイントなどあれば、学習してみましょう。

Q1. Syntax Error

次のコードを実行するとエラーが発生します。 このエラーの原因は何でしょう? const message = "Hello; console.log(message); 選択肢(クリックしてください)

答え:

C. ダブルクォートが閉じられていない

解説

IDEなどを使っていても、たまに発生してしまいがちな初歩的凡ミスエラーです。

Q2. Type Error

次のコードを実行するとエラーが発生します。 このエラーの原因は何でしょう? const number = 42; number.toUpperCase(); 選択肢(クリックしてください)

答え:

C. 数値型にtoUpperCaseメソッドは存在しない

解説

toUpperCase()は、アルファベットの小文字を大文字に変換する処理です。数値に使うとエラーがでるし、数字の大文字は無いので、型をしっかりと理解して変数を扱う事はとても重要という事です。

Q3. Reference Error

次のコードを実行するとエラーが発生します。このエラーの原因は何でしょう? console.log(userName); let userName = "Alice"; 選択肢(クリックしてください)

答え:

B. letを使っているため、userNameはホイスティングされない

解説

ホイスティングは、「巻き上げ」という、後記述での値を反映するインタプリタ特有の処理です。 変数の定義はちゃんと、前記述で行いましょう。

Q4. Range Error

次のコードを実行するとエラーが発生します。このエラーの原因は何でしょう? function recursiveFunc() { return recursiveFunc(); } recursiveFunc(); 選択肢(クリックしてください)

答え:

C. スタックオーバーフローエラーが発生した

解説

関数内での無限ループ状態になり、メモリーオーバーになってしまいます。

Q5. JSON.parse Error

次のコードを実行するとエラーが発生します。このエラーの原因は何でしょう? const jsonData = "{name: 'Alice', age: 25}"; const parsedData = JSON.parse(jsonData); 選択肢(クリックしてください)

答え:

C. JSONの構造が不正

解説:

JSONで扱う文字列は、'(シングルクォート)ではなく、"(ダブルクォート)を使わなくてはいけません。

Q6. Uncaught Error

次のコードを実行するとエラーが発生します。このエラーの原因は何でしょう? throw new Error("Something went wrong"); 選択肢(クリックしてください)

答え:

B. 明示的にエラーがスローされている

解説

throwはエラー回避をする処理ですが、try~catchの中で使う事で実行されます。 ダイレクトに記載してはいけません。

Q7. Undefined Error

次のコードを実行するとエラーが発生します。このエラーの原因は何でしょう? let obj = { name: "Alice" }; console.log(obj.age.toString()); 選択肢(クリックしてください)

答え:

B. ageが未定義

解説

保持していないプロパティは、undefinedとして解釈されます。 undefinedに対して、さらに保持していないプロパティを使おうとすると、エラーが発生します。

Q8. Eval Error

次のコードはエラーを引き起こしますが、問題は何でしょう? eval("console.log('Hello)"); 選択肢(クリックしてください)

答え:

B. シングルクォートが閉じられていない

翻訳

evalを書いても書かなくても関係ないコードですが、evalの内部に書かれているコードもエラーがあると、そのままエラーが返ってしまいます。

Q9. URI Error

次のコードを実行するとエラーが発生します。このエラーの原因は何でしょう? const url = "https://example.com/%"; decodeURIComponent(url); 選択肢(クリックしてください)

答え:

B. URLのエンコードが不正

解説

decodeURIComponentはURLエンコードされた文字列をデコードしますが、%は不完全なエンコード文字列として認識され、URIErrorが発生します。 %としてURLをデコードしたい場合は、%を文字エンコードします。 const url = "https://example.com/%25"; // '%25'は'%' decodeURIComponent(url); // 正常にデコードされる

Q10. Async/Await Error

次のコードを実行するとエラーが発生します。このエラーの原因は何でしょう? async function fetchData() { const response = await fetch("https://example.com/api"); console.log(response.json()); } 選択肢(クリックしてください)

答え:

C. .json()はPromiseを返すため、awaitが必要

解説

.json()メソッドはPromiseを返すため、awaitなしで実行すると未解決のPromiseオブジェクトがログに出力されます。 解決方法:.json()にもawaitを追加することで正しくデータを取得できます。 async function fetchData() { const response = await fetch("https://example.com/api"); const data = await response.json(); console.log(data); }

あとがき

何かと心が折れがちなエラーですが、クイズにすると、少し楽しく感じませんか? ゲーミフィケーション的にエラーと対峙する事で、もっとプログラミングが面白くなるかもですね。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ