JavaScriptのテストに出そうな問題10選【初心者~中級者向け】

JavaScriptを学んでいる方にとって、テストや試験に向けて「どんな問題が出るか?」を押さえておくことはとても大切です。この記事では、**入門から応用までのレベルをカバーした「よく出る問題10選」**を、解説付きで紹介します!


1. 変数のスコープ(var, let, const)

問題:次のコードの出力結果は?

function testScope() {
if (true) {
var x = 1;
let y = 2;
const z = 3;
}
console.log(x); // ?
console.log(y); // ?
console.log(z); // ?
}
testScope();

答えと解説:

  • x → 1(var は関数スコープ)
  • y → ReferenceError(let はブロックスコープ)
  • z → ReferenceError

2. 型の違いと typeof

問題:次の各変数の型は?

typeof null // ?
typeof [] // ?
typeof {} // ?

答え:

  • typeof null → "object"(※JavaScriptの仕様バグ)
  • typeof [] → "object"(配列もオブジェクト)
  • typeof {} → "object"

3. == と === の違い

問題:次の比較結果は?

0 == false   // ?
0 === false // ?
'1' == 1 // ?
'1' === 1 // ?

答え:

  • true
  • false
  • true
  • false

4. 関数の定義方法と違い

問題:次のうち、再代入不可なのはどれ?

const a = function() {};
const b = () => {};
function c() {}

答え:

  • c は関数宣言なので、再代入可能
  • abconst 宣言なので、再代入不可

5. クロージャー(Closure)

問題:次のコードの出力結果は?

function outer() {
let count = 0;
return function() {
count++;
console.log(count);
};
}

const counter = outer();
counter(); // ?
counter(); // ?

答え:

  • 1
  • 2(クロージャーにより count が保持される)

6. this の挙動

問題:次のコードで this は何を指す?

const obj = {
value: 42,
getValue: function() {
return this.value;
}
};
const get = obj.getValue;
console.log(get()); // ?

答え:

  • undefined(strict mode では)または window.value(通常モード)
  • thisobj を失っているため

7. 配列操作(map, filter, reduce)

問題:次のコードの出力は?

const nums = [1, 2, 3, 4];
const result = nums.filter(n => n % 2 === 0).map(n => n * 10);
console.log(result);

答え:

  • [20, 40]

8. 非同期処理(Promise / async await)

問題:次の実行順序は?

console.log("1");
setTimeout(() => console.log("2"), 0);
Promise.resolve().then(() => console.log("3"));
console.log("4");

答え:

  • 出力順:1, 4, 3, 2

9. オブジェクトのコピーと参照

問題:次のコードの出力は?

const a = { name: 'Alice' };
const b = a;
b.name = 'Bob';
console.log(a.name);

答え:

  • "Bob"(オブジェクトは参照渡し)

10. 配列のスプレッド構文と分割代入

問題:次のコードの出力は?

const arr = [1, 2, 3];
const [a, , b] = arr;
console.log(a, b);

答え:

  • 1 3(2番目の要素はスキップ)

📝 おわりに

これらの問題は、初心者から中級者向けの試験や面接でも頻出です。理解しておくことで、JavaScriptの本質的な理解も深まります。

今後の勉強や就職・資格対策にもぜひお役立てください!

おすすめの記事