ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の面接でよくある質問 5 件

JavaScript の面接でよくある質問 5 件

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-03 21:39:411001ブラウズ

Top JavaScript Interview Questions for 5

JavaScript は Web 開発において基本的な役割を果たし、フロントエンド開発者とフルスタック開発者の両方にとって不可欠なスキルです。経験豊富な専門家であっても、初めての面接の準備をしている人であっても、JavaScript の主要な概念を習得することは不可欠です。ここでは、次回の面接で優れた成績を収めるために役立つ、JavaScript の面接での質問トップ 20 を厳選してご紹介します。


1. JavaScript とは何ですか?Java との違いは何ですか?

JavaScript は、主に Web 開発に使用される軽量のインタープリタ型プログラミング言語です。これはオブジェクト指向ですが、構文、目的、実行環境が Java とは異なります。 JavaScript は動的に型指定され、ブラウザーで実行されますが、Java は静的に型指定され、JVM を必要とします。


2. JavaScript のさまざまなデータ型とは何ですか?

JavaScript には 7 つのプリミティブ データ型があります:

  • 文字列
  • 番号
  • ブール値
  • 未定義
  • ヌル
  • BigInt
  • 記号

さらに、非プリミティブ データ型には、オブジェクト、配列、関数が含まれます。


3. JavaScript の「ホイスティング」について説明します。

ホイスティングは、宣言をスコープの先頭に移動する JavaScript のデフォルトの動作です。例:

console.log(a); // undefined
var a = 5;

この例では、var a はホイストされますが、初期化はされません。


4. var、let、const の違いは何ですか?

  • var: 関数スコープであり、再宣言可能であり、巻き上げによりバグが発生する可能性があります。
  • let: ブロックスコープであり、再宣言は許可されません。
  • const: ブロックスコープで定数に使用されます。再割り当てはできません。

5. JavaScript のクロージャとは何ですか?

クロージャーは、スコープが終了した後でもその外側のスコープを記憶する関数です。

function outer() {
  let count = 0;
  return function inner() {
    count++;
    return count;
  };
}
const increment = outer();
console.log(increment()); // 1
console.log(increment()); // 2

6. == と === の違いは何ですか?

  • ==: 型強制後の値を比較します。
  • ===: 値と型の両方を比較します。

例:

5 == "5";  // true
5 === "5"; // false

7. JavaScript Promise とは何ですか?

Promise は非同期操作を表します。これらは次の 3 つの状態のいずれかになります。

  • 保留中
  • 解決済み
  • 拒否されました

例:

console.log(a); // undefined
var a = 5;

8. async/await の概念を説明します。

async/await を使用すると、Promise の操作が簡素化され、非同期コードが同期しているように見えます。

function outer() {
  let count = 0;
  return function inner() {
    count++;
    return count;
  };
}
const increment = outer();
console.log(increment()); // 1
console.log(increment()); // 2

9. JavaScript におけるイベント委任とは何ですか?

イベント委任は、親要素を使用して、子要素のイベントを処理します。イベント リスナーを減らすことでパフォーマンスが向上します。

5 == "5";  // true
5 === "5"; // false

10. JavaScript モジュールとは何ですか?

モジュールを使用すると、コードを個別のファイルに整理して、再利用可能で保守しやすくなります。

例:

  • エクスポート:
const promise = new Promise((resolve, reject) => {
  resolve("Success");
});
promise.then(data => console.log(data));
  • インポート:
async function fetchData() {
  const response = await fetch('https://api.example.com/data');
  const data = await response.json();
  console.log(data);
}

11. call()、apply()、bind() の違いを説明してください。

  • call(): 指定された this 値と引数を使用して関数を呼び出します。
  • apply(): call() と似ていますが、引数を配列として受け取ります。
  • bind(): 指定された this 値を持つ新しい関数を返します。

12.同期 JavaScript と非同期 JavaScript の違いは何ですか?

  • 同期: 1 行ずつ実行します。
  • 非同期: ノンブロッキング タスクを実行し、プログラムの実行を継続できます。

非同期の例:

document.getElementById('parent').addEventListener('click', (e) => {
  if (e.target && e.target.tagName === 'BUTTON') {
    console.log('Button clicked!');
  }
});

出力:

世界 (最初)

こんにちは(2回目)


13. JavaScript の DOM とは何ですか?

ドキュメント オブジェクト モデル (DOM) は、Web ページを表すツリー構造です。 JavaScript は DOM と対話して要素を動的に操作します。


14. JavaScript の高階関数とは何ですか?

高階関数は、他の関数を引数として受け取るか、結果として返します。

例:

export const greet = () => console.log("Hello");

JavaScriptのfold関数

15. nullと未定義の違いは何ですか?

  • null: 値がないことを明示的に表します。
  • 未定義: 初期化されていない値を表します。

16. JavaScript のメモ化とは何ですか?

メモ化は、関数の結果をキャッシュするための最適化手法です。

例:

import { greet } from './module.js';

17. JavaScript のイベント ループとは何ですか?

イベント ループは非同期操作を処理し、ノンブロッキングな実行を保証します。


18. JavaScript プロトタイプとは何ですか?

JavaScript のすべてのオブジェクトにはプロトタイプがあります。インスタンス間で共有されるメソッドとプロパティはプロトタイプで定義されます。


19. for...of ループと for...in ループの違いは何ですか?

  • for...of: 配列などの反復可能なオブジェクトを反復します。
  • for...in: オブジェクトの列挙可能なプロパティを繰り返します。

20. JavaScript はエラーをどのように処理しますか?

エラーは try...catch を使用して処理されます。

例:

console.log(a); // undefined
var a = 5;

これらの質問は、JavaScript 面接を進めるための強力な基盤となります。自信を持ってスキルを実証できるよう、コーディング例を練習し、基礎となる概念を理解してください。 Web 開発に関するその他のヒントについては、Makemychance をご覧ください。

以上がJavaScript の面接でよくある質問 5 件の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。