Q11. ==と===の違い
次のコードの出力は何ですか?console.log(1 == "1");
console.log(1 === "1");
選択肢(クリックしてください)
答え:
B. trueとfalse解説:
==は型を自動変換して比較するため、1と"1"は等しいと評価されます。 ===は型を変換せず比較するため、型が異なる場合はfalseになります。
Q12. オブジェクトのプロパティ参照
次のコードの出力は何ですか?const obj = { key: "value" };
console.log(obj.key);
console.log(obj["key"]);
console.log(obj.keyName);
選択肢(クリックしてください)
答え:
A. "value", "value", undefined解説:
obj.keyとobj["key"]は同じ結果を返します。 存在しないプロパティobj.keyNameを参照すると、undefinedが返されます。エラーにはなりません。
Q13. 配列のpushと代入の違い
次のコードの出力は何ですか?let arr = [];
arr[0] = 1;
arr[2] = 3;
console.log(arr);
arr.push(5);
console.log(arr);
選択肢(クリックしてください)
答え:
C. [1, undefined, 3]と[1, undefined, 3, 5]解説:
arr[2] = 3では、インデックス1にundefinedが自動的に割り当てられます。 pushは末尾に値を追加するため、既存の配列に影響を与えません。
Q14. 関数の引数の省略
次のコードを実行するとどうなりますか?function greet(name) {
console.log("Hello, " + name);
}
greet();
選択肢(クリックしてください)
答え:
B. "Hello, undefined"解説:
関数に引数を渡さない場合、その値はデフォルトでundefinedになります。 文字列結合で"undefined"が表示されます。
Q15. nullとundefinedの違い
次のコードの出力は何ですか?let a = null;
let b;
console.log(a == b);
console.log(a === b);
選択肢(クリックしてください)
答え:
A. trueとfalse解説:
==ではnullとundefinedは等しいとみなされます。 ===では型も比較するため、異なる型(nullとundefined)は等しくありません。
Q16. スプレッド演算子の誤用
次のコードを実行するとどうなりますか?let arr = [1, 2, 3];
let newArr = [...arr, 4, ...arr];
console.log(newArr);
選択肢(クリックしてください)
答え:
A. [1, 2, 3, 4, 1, 2, 3]解説:
スプレッド演算子...は配列を展開します。 [...arr, 4, ...arr]はarrを2回展開し、間に4を挿入した結果となります。
Q17. 関数のデフォルト値
次のコードの出力は何ですか?function add(a = 1, b = 2) {
return a + b;
}
console.log(add(5));
選択肢(クリックしてください)
答え:
C. 7解説:
add(5)を呼び出した場合、aに5が渡され、bはデフォルト値2が使用されます。 計算は5 + 2 = 7となります。
Q18. クロージャの使い方
次のコードを実行するとどうなりますか?function makeCounter() {
let count = 0;
return function () {
count++;
console.log(count);
};
}
let counter1 = makeCounter();
counter1();
counter1();
let counter2 = makeCounter();
counter2();
選択肢(クリックしてください)
答え:
B. 1, 2, 1解説:
makeCounterを呼び出すたびに、新しいクロージャが作られます。 counter1とcounter2は独立したcountを持つため、それぞれ初期化されます。
Q19. プリミティブとオブジェクトの違い
次のコードの出力は何ですか?let a = 10;
let b = a;
b = 20;
console.log(a);
let obj1 = { value: 10 };
let obj2 = obj1;
obj2.value = 20;
console.log(obj1.value);
選択肢(クリックしてください)
答え:
C. 10と20解説:
プリミティブ型(例: 数値)は値渡しのため、bを変更してもaには影響しません。 オブジェクト型(例: 配列やオブジェクト)は参照渡しのため、obj2を変更するとobj1も影響を受けます。
Q20. typeofの挙動
次のコードの出力は何ですか?console.log(typeof null);
console.log(typeof undefined);
選択肢(クリックしてください)
答え:
B. "object"と"undefined"解説:
typeof nullはJavaScriptの初期設計ミスにより"object"と返されます(仕様上のバグ)。 typeof undefinedは正しく"undefined"を返します。
0 件のコメント:
コメントを投稿