Q1. 等号と代入
次のコードは何を出力しますか?let x = 10;
if (x = 5) {
console.log("True");
} else {
console.log("False");
}
選択肢(クリックしてください)
答え:
A. "True"解説:
x = 5は代入であり、if文の条件として評価されると、5は真(truthy)とみなされます。 そのため、ifの中のコードが実行されます。代わりに比較する場合は、x === 5を使うべきです。
Q2. セミコロンを付ける?付けない?
次のコードを実行するとどうなりますか?console.log("Hello World")
console.log("This is JavaScript");
選択肢(クリックしてください)
答え:
A. 正常に動作する解説:
JavaScriptではセミコロンの自動挿入機能(ASI)が働き、コードが正しく動作します。 ただし、複雑なコードではエラーを招く可能性があるため、セミコロンを明示的に書くのが推奨されます。
Q3. 大文字小文字の区別
次のコードを実行するとどうなりますか?let myVariable = 100;
console.log(MyVariable);
選択肢(クリックしてください)
答え:
B. エラーが発生する解説:
JavaScriptでは変数名は大文字小文字を区別します。 myVariableとMyVariableは別の変数とみなされるため、MyVariableを参照するとReferenceErrorが発生します。
Q4. 閉じ忘れた括弧
次のコードを実行するとどうなりますか?function greet(name {
console.log("Hello, " + name);
}
greet("Alice");
選択肢(クリックしてください)
答え:
B. 括弧エラーが出る解説:
関数の定義部分で括弧が閉じられていないため、構文エラー(SyntaxError)が発生します。 正しいコードは以下のようになります。function greet(name) { console.log("Hello, " + name); } greet("Alice");
Q5. 配列のインデックス範囲外アクセス
次のコードを実行するとどうなりますか?let arr = [1, 2, 3];
console.log(arr[3]);
選択肢(クリックしてください)
答え:
A. undefinedが表示される解説:
配列の範囲外のインデックスにアクセスすると、JavaScriptではエラーにはならずundefinedが返されます。 範囲内かどうか確認するには、arr.lengthを利用すると安全です。
Q6. 無限ループの書きミス
次のコードを実行するとどうなりますか?let i = 0;
while (i < 5) {
console.log(i);
}
選択肢(クリックしてください)
答え:
B. 無限ループに入る解説:
ループ内でiの値を変更していないため、条件i < 5が永遠に真となり、無限ループに陥ります。 修正例は以下のようにします。let i = 0; while (i < 5) { console.log(i); i++; }
Q7. スコープのミス
次のコードを実行するとどうなりますか?if (true) {
var x = 10;
}
console.log(x);
選択肢(クリックしてください)
答え:
A. 10が表示される解説:
varで宣言した変数は関数スコープであり、ifブロック外でも参照可能です。 一方で、letやconstを使うとブロックスコープが適用され、エラーが発生します。if (true) { let x = 10; // この場合、外では参照できません } console.log(x); // エラー
Q8. 型エラー
次のコードを実行するとどうなりますか?let x = "10";
let y = 5;
console.log(x - y);
選択肢(クリックしてください)
答え:
A. 5が表示される解説:
-(マイナス)演算子は数値として評価するため、xの文字列"10"が数値10に変換され、10 - 5として計算されます。 一方で、+(プラス)演算子では文字列連結が優先されます。
Q9. thisの文脈ミス
次のコードを実行するとどうなりますか?const obj = {
value: 42,
printValue: function() {
setTimeout(function() {
console.log(this.value);
}, 1000);
}
};
obj.printValue();
選択肢(クリックしてください)
答え:
C. undefinedが表示される解説:
setTimeout内のfunction()はグローバルスコープで実行されるため、thisはwindow(またはundefined)を指します。 修正するにはarrow functionを使います。setTimeout(() => { console.log(this.value); }, 1000);
Q10. 関数を即時実行しないミス
次のコードを実行するとどうなりますか?function greet() {
console.log("Hello!");
}
greet;
選択肢(クリックしてください)
答え:
D. 関数の定義が出力される解説:
greetは関数そのものを参照しているため、実行されずに関数の定義が出力されます。 実行するにはgreet()と記述する必要があります。
0 件のコメント:
コメントを投稿