よくある JavaScript インタビューの質問と回答
公開: 2023-01-13ポートフォリオに JavaScript を含めると、ソフトウェア開発者の役割を得る可能性が高くなります。 そうは言っても、よくある JavaScript インタビューの質問を見てみましょう。
JavaScript は、Web 開発で最も使用される言語の 1 つです。 現在、ほぼすべてのタイプのアプリケーションの開発に使用されています。
インタビューの質問に入る前に、JavaScript を学習する利点を見てみましょう。

JavaScript は、軽量で解釈された、またはジャストインタイムでコンパイルされるプログラミング言語です。 ワールド ワイド ウェブのコア言語の 1 つです。 www の他の 2 つのコア言語はご存知でしょう。 そうでない場合は、それらを検索することをお勧めします。
JavaScript は主に Web 用に作成されています。 しかし、それは今や Web だけのものではありません。 Node、Denoなどの環境の助けを借りて、ほぼすべてのプラットフォームで実行できます。
そのメリットをいくつか見ていきましょう。
JavaScript の利点
- 簡単に始められます。 コーディングの知識がなくても学習できます。
- その周りの大きなコミュニティ。 どこかで立ち往生している場合でも、必要なすべてのヘルプが得られます。
- JavaScript を使用して構築された多くのライブラリ/フレームワークがあり、アプリケーションの開発を高速化するのに役立ちます。
- フロントエンド、バックエンド、Android、iOS などのアプリケーションを JavaScript で開発できます。 それを使用して、ほぼすべてのタイプのアプリケーションを作成できます。 ただし、Web 開発ではより堅牢です。
JavaScript のデータ型は何ですか?
データ型は、さまざまな種類のデータを格納するために使用されます。 データ型は、プログラミング言語によって異なります。 JavaScript には 8 つのデータ型があります。 それらを1つずつ見てみましょう。
- 番号
- 弦
- ブール値
- 未定義
- ヌル
- BigInt
- シンボル
- 物体
Objectを除くすべてのデータ型は、プリミティブ値と呼ばれます。 そしてそれらは不変です。
JavaScript の組み込みメソッドとは何ですか?
JavaScript の組み込みメソッドは、データ型ごとに異なります。 これらの組み込みメソッドには、それぞれのデータ型を使用してアクセスできます。 さまざまなデータ型とデータ構造の組み込みメソッドをいくつか見てみましょう。
- 番号
- to固定
- toString
- …
- 弦
- toLowerCase
- で始まる
- chartAt
- …
- 配列
- フィルター
- 地図
- forEach
- …
各データ型には多くの組み込みメソッドがあります。 さまざまなデータ型とデータ構造のすべての組み込みメソッドの参照を確認できます。
JavaScriptで配列を作成するには?
配列は、JavaScript のコア データ構造の 1 つです。 JavaScript は動的であるため、配列には任意の型のデータを含めることができます。 JavaScript で配列を作成する方法を見てみましょう。
角括弧[]
を使用して配列を作成できます。 オブジェクトを作成するのは簡単で迅速です
// Empty array const arr = []; // Array with some random values const randomArr = [1, "One", true]; console.log(arr, randomArr);
Array
コンストラクターを使用して配列を作成できます。 一般的なプロジェクトでは、コンストラクターを使用して配列を作成することはめったにありません。
// Empty array const arr = new Array(); // Array with some random values const randomArr = new Array(1, "One", true); console.log(arr, randomArr);
JavaScript 配列は変更可能です。つまり、作成後に必要に応じて変更できます。
JavaScript でオブジェクトを作成するには?
配列とは別に、オブジェクトは JavaScript のもう 1 つのコア データ構造です。 オブジェクトは、キーと値のペアの保存を使用しています。 キーは不変の値である必要がありますが、値は何でもかまいません。 JavaScript でオブジェクトを作成する方法を見てみましょう。
中括弧{}
を使用してオブジェクトを作成できます。 オブジェクトの作成は簡単かつ迅速です。
// Empty object const object = {}; // Object with some random values const randomObject = { 1: 2, one: "Two", true: false }; console.log(object, randomObject);
Object
コンストラクターを使用してオブジェクトを作成できます。 一般的なプロジェクトでこれを使用することはめったにありません。
// Empty object const object = new Object(); // Object with some random values const randomObject = new Object(); randomObject[1] = 2; randomObject["one"] = "Two"; randomObject[true] = false; console.log(object, randomObject);
JavaScript オブジェクトは変更可能です。つまり、2 番目の例でわかるように、作成後に変更できます。
JavaScript コードをどのようにデバッグしますか?
コードのデバッグは簡単ではありません。 また、プログラミング言語ごと、プロジェクトごとなど、さまざまです。 JavaScript のデバッグに使用される一般的なものを見てみましょう。
#1。 ロギング
コード内の複数の場所でconsole.log
ステートメントを使用して、バグを特定できます。 前の行にバグがある場合、コードは次のコード行の実行を停止します。
ロギングは古いデバッグ方法の 1 つで、小規模なプロジェクトでは非常に効果的です。 これは、どのプログラミング言語でも一般的なデバッグ手法です。
#2。 開発者ツール
JavaScript は主に Web アプリケーションの開発に使用されます。 そのため、ほとんどすべてのブラウザーには、JavaScript コードのデバッグに役立つ開発者ツールが搭載されています。
最もよく使用されるデバッグ方法の 1 つは、開発者ツールでブレークポイントを設定することです。 ブレークポイントは JavaScript の実行を停止し、現時点での実行に関するすべての情報を提供します。
エラーが発生している場所の周りに複数のブレークポイントを設定し、その原因を確認できます。 これは、JavaScript Web アプリケーションをデバッグする最も効果的な方法です。
#3。 IDE
IDE を使用して JavaScript をデバッグできます。 VS Code は、ブレークポイントを使用したデバッグをサポートしています。 デバッグ機能は、使用している IDE によって異なる場合があります。 ただし、ほとんどの IDE にはその機能があります。
HTML ファイルに JavaScript コードを追加する方法は?
script
タグを使用して JavaScript HTML ファイルを追加できます。 以下の例を確認できます。
<!DOCTYPE html> <html lang="en"> <head> <title>Geekflare</title> </head> <body> <h1>Geekflare</h1> <script> // JavaScript code goes here console.log("This is JavaScript code"); </script> </body> </html>
クッキーとは?
Cookie は、小さな情報を保存するために使用されるキーと値のペアです。 情報は何でもかまいません。 Cookie の有効期限を設定できます。有効期限が過ぎると削除されます。 これらは、ユーザーの情報を保存するために広く使用されています。
ページを更新しても、Cookie を削除するか有効期限が切れるまで Cookie は消去されません。 開発者ツールを開くと、任意のブラウザーで任意の Web アプリ/Web ページの Cookie を確認できます。
クッキーの読み方
document.cookie
を使用して、JavaScript で Cookie を読み取ることができます。 作成したすべての Cookie が返されます。
console.log("All cookies", document.cookie);
Cookie がない場合は、空の文字列が返されます。
クッキーを作成および削除する方法は?
キーと値のペアをdocument.cookie
に設定することで、Cookie を作成できます。 例を見てみましょう。
document.cookie = "one=One;";
上記の構文では、 one
Cookie キーとOne
がその値です。 ドメイン、パス、有効期限などの属性を Cookie に追加できます。 それぞれをセミコロン (;)で区切る必要があります。 すべての属性はオプションです。
属性の例を見てみましょう。
document.cookie = "one=One;expires=Jan 31 2023;path=/;";
上記のコードでは、有効期限と Cookie へのパスを追加しています。 有効期限が指定されていない場合、Cookie はセッション後に削除されます。 デフォルトのパスはファイル パスになります。 有効期限の形式は GMT にする必要があります。
複数の Cookie を作成する方法を見てみましょう。
document.cookie = "one=One;expires=Jan 31 2023;path=/;"; document.cookie = "two=Two;expires=Jan 31 2023;path=/;"; document.cookie = "three=Three;expires=Jan 31 2023;path=/;";
複数の Cookie を設定する際にキーまたはパスが異なる場合、Cookie は上書きされません。 キーとパスが同じ場合、以前の Cookie が上書きされます。 以前に設定した Cookie を上書きする以下の例を確認してください。
document.cookie = "one=One;expires=Jan 31 2023;path=/;"; document.cookie = "one=Two;path=/;";
Cookie から有効期限を削除し、値を変更しました。
コードが正しく機能するかどうかをテストするときは、有効期限を将来の日付として使用してください。 2023 年1 月 31 日以降も同じ2023 年 1 月 31日の日付を維持すると、Cookie は作成されません。
Cookie を作成および更新する方法を見てきました。 クッキーを削除する方法を見てみましょう。
クッキーの削除は簡単です。 Cookie の有効期限を任意の過去の日付に変更するだけです。 以下の例を確認してください。
// Creating cookies document.cookie = "one=One;expires=Jan 31 2023;path=/;"; document.cookie = "two=Two;expires=Jan 31 2023;path=/;"; document.cookie = "three=Three;expires=Jan 31 2023;path=/;"; // Deleting the last cookie document.cookie = "three=Three;expires=Jan 1 2023;path=/;";
コードの最後の行で削除されているため、Cookie の最後の Cookie は見つかりません。 これで、最小 Cookie のチュートリアルは終了です。
さまざまな JavaScript フレームワークとは?
JavaScript フレームワークはたくさんあります。 UI開発にはReact、Vue、Angularなど。 Express、Koa、Nest など、サーバー側の開発用。 静的サイト生成用の NextJS、Gatsby など。 モバイルアプリ開発向けの React Native、Ionic など。 ここでは、JavaScript フレームワークのいくつかについて言及しました。 探索に多くの時間がかかるフレームワークをさらに見つけることができます。 必要なときに調べてください。
JavaScript でのクロージャー
クロージャは、そのレキシカル スコープとその親レキシカル環境にバンドルされた関数です。 クロージャーを使用すると、外側のスコープ データにアクセスできます。 関数が作成されると、クロージャが形成されます。
function outer() { const a = 1; function inner() { // We can access all the data from the outer function scope here // The data will be available even if we execute this function outside the outer function // as inners' closure formed while creating it console.log("Accessing a inside inner", a); } return inner; } const innerFn = outer(); innerFn();
クロージャは、JavaScript アプリケーションで広く使用されています。 それらがクロージャーであることを認識せずに、以前にそれらを使用したことがあるかもしれません。 クロージャーについて学ぶことはこれだけではありません。 この概念を完全に習得していることを確認してください。
JavaScript での巻き上げ
巻き上げは、コードを実行する前に、変数、関数、およびクラスの宣言がスコープの先頭に移動する JavaScript のプロセスです。
// Accessing `name` before declaring console.log(name); // Declaring and initializing the `name` var name = "Geekflare";
上記のコードを実行すると、エラーは表示されません。 ただし、ほとんどの言語では、エラーが発生します。 巻き上げは宣言を一番上に移動するだけなので、出力はundefined
になり、行番号 3 まで初期化されません。
次のようにvar
をlet
またはconst
に変更し、コードを再度実行します。
// Accessing `name` before declaring console.log(name); // Declaring and initializing the `name` const name = "Geekflare";
これで、初期化する前に変数にアクセスできないという参照エラーが表示されます。
ReferenceError: Cannot access 'name' before initialization
エラーがconst
するlet
に、初期化する前にアクセスすることはできません。 これは、 let
またはconst
で宣言された変数が、初期化される行まで一時的なデッド ゾーン (TDZ) にあるためです。 TDZ から変数にアクセスできません。
JavaScript でのカリー化
カリー化は、多くのパラメーターを持つ関数を、複数の callable を持つより少ないパラメーターに変換する手法です。 これにより、関数 callable add(a, b, c, d) を add(a)(b)(c)(d) callable に変換できます。 その方法の例を見てみましょう。
function getCurryCallback(callback) { return function (a) { return function (b) { return function (c) { return function (d) { return callback(a, b, c, d); }; }; }; }; } function add(a, b, c, d) { return a + b + c + d; } const curriedAdd = getCurryCallback(add); // Calling the curriedAdd console.log(curriedAdd(1)(2)(3)(4));
getCurryCallback
関数を一般化できます。この関数は、さまざまな関数がカリー化呼び出し可能オブジェクトに変換するために使用されます。 詳細については、JavaScript 情報を参照してください。
ドキュメントとウィンドウの違い
window
は、ブラウザーの最上位のオブジェクトです。 履歴、場所、ナビゲーターなど、ブラウザー ウィンドウに関するすべての情報が含まれています。 JavaScript でグローバルに利用できます。 インポートせずにコードで直接使用できます。 ウィンドウなしでwindow
オブジェクトのプロパティとメソッドにアクセスできwindow.
document
はwindow
オブジェクトの一部です。 Web ページにロードされたすべての HTML は、ドキュメント オブジェクトに変換されます。 ドキュメント オブジェクトは、すべての HTML 要素と同様に、さまざまなプロパティとメソッドを持つ特別な HTMLDocument 要素を参照します。
window
オブジェクトはブラウザ ウィンドウを表し、 document
はそのブラウザ ウィンドウにロードされた HTML ドキュメントを表します。
クライアントサイドとサーバーサイドの違い
クライアント側とは、アプリケーションを使用するエンド ユーザーを指します。 サーバー側とは、アプリケーションがデプロイされる Web サーバーを指します。
フロントエンドの用語では、ユーザーのコンピューターのブラウザーをクライアント側、クラウド サービスをサーバー側と言えます。
innerHTML と innerText の違い
innerHTML
とinnerText
はどちらも HTML 要素のプロパティです。 これらのプロパティを使用して、HTML 要素のコンテンツを変更できます。
HTML 文字列を、通常の HTML のようにレンダリングされるプロパティであるinnerHTML
に割り当てることができます。 以下の例を確認してください。
const titleEl = document.getElementById("title"); titleEl.innerHTML = '<span style="color:orange;">Geekflare</span>';
id title
を持つ 1 つの要素を HTML に追加し、上記のスクリプトを JavaScript ファイルに追加します。 コードを実行して出力を確認します。 オレンジ色のGeekflare
になります。 要素を調べると、 span
タグの中にあります。 したがって、 innerHTML
は HTML 文字列を受け取り、通常の HTML としてレンダリングします。

反対側のinnerText
は通常の文字列を受け取り、そのままレンダリングします。 innerHTML
のような HTML はレンダリングされません。 上記のコードでinnerHTML
をinnerText
に変更し、出力を確認します。
const titleEl = document.getElementById("title"); titleEl.innerText = '<span style="color:orange;">Geekflare</span>';
これで、Web ページで提供した正確な文字列が表示されます。
let と var の違い
let
およびvar
キーワードは、JavaScript で変数を作成するために使用されます。 let
キーワードは ES6 で導入されました。
let
はブロック スコープで、 var
は関数スコープです。
{ let a = 2; console.log("Inside block", a); } console.log("Outside block", a);
上記のコードを実行します。 let a
はブロック スコープであるため、ブロック外にアクセスできないため、最後の行でエラーが発生します。 ここで、それをvar
に変更して、もう一度実行します。
{ var a = 2; console.log("Inside block", a); } console.log("Outside block", a);
ブロック外のa
変数にもアクセスできるため、エラーは発生しません。 それでは、ブロックを関数に置き換えてみましょう。
function sample() { var a = 2; console.log("Inside function", a); } sample(); console.log("Outside function", a);
上記のコードを実行すると、関数スコープであるため、関数の外部でvar a
it にアクセスできないため、参照エラーが発生します。
var
キーワードを使用して変数を再宣言できますが、 let
キーワードを使用して変数を再宣言することはできません。 例を見てみましょう。
var a = "Geekflare"; var a = "Chandan"; console.log(a);
let a = "Geekflare"; let a = "Chandan"; console.log(a);
コードの最初の部分はエラーをスローせず、値は最後に割り当てられa
値に変更されます。 let
を使用して変数を再宣言できないため、コードの 2 番目の部分はエラーをスローします。
セッション ストレージとローカル ストレージの違い
セッション ストレージとローカル ストレージは、インターネットなしでアクセスできるユーザーのコンピューターに情報を保存するために使用されます。 キーと値のペアは、セッション ストレージとローカル ストレージの両方に格納できます。 他のデータ型またはデータ構造を指定すると、キーと値の両方が文字列に変換されます。
セッションが終了すると(ブラウザが閉じられると)、セッション ストレージはクリアされます。 位置情報ストレージは、クリアするまでクリアされません。
sessionStorage
とlocalStorage
オブジェクトをそれぞれ使用して、セッション ストレージとロケーション ストレージにアクセス、更新、および削除できます。
JavaScript の NaN とは何ですか?
NaN
はNot-a-Numberと省略されます。 これは、何かが JavaScript で合法/有効な数値ではないことを表します。 0/0
、 undefined * 2
、 1 + undefined
、 null * undefined
などの出力としてNaN
を取得する場合があります。
レキシカルスコープとは?
レキシカルスコープは、親のスコープから変数にアクセスすることを指します。 2 つの内部関数を持つ関数があるとします。 最も内側の関数は、その 2 つの親関数のスコープ変数にアクセスできます。 同様に、第 2 レベルの関数は、最も外側の関数スコープにアクセスできます。 例で見てみましょう。
function outermost() { let a = 1; console.log(a); function middle() { let b = 2; // `a` are accessible here console.log(a, b); function innermost() { let c = 3; // both `a` and `b` are accessible here console.log(a, b, c); } innermost(); } middle(); } outermost();
JavaScript は、コード内のどこかで変数にアクセスするときに、スコープ チェーンを使用して変数を見つけます。 まず、現在のスコープ内の変数をチェックし、次にグローバル スコープまで親スコープをチェックします。
値渡しと参照渡しとは何ですか?
値渡しと参照渡しは、JavaScript で関数に引数を渡す 2 つの方法です。
値渡し:元のデータのコピーを作成し、それを関数に渡します。 したがって、関数に変更を加えても、元のデータには影響しません。 以下の例を確認してください。
function sample(a) { // changing the value of `a` a = 5; console.log("Inside function", a); } let a = 3; sample(a); console.log("Outside function", a);
関数内で変更しても、 a
の元の値は変更されていないことがわかります。
参照渡し:データの参照を関数に渡します。 そのため、関数に変更を加えると、元のデータも変更されます。
function sample(arr) { // adding a new value to the array arr.push(3); console.log("Inside function", arr); } let arr = [1, 2]; sample(arr); console.log("Outside function", arr);
関数内でarr
を変更すると、arr の元の値が変更されることがわかります。
注:すべてのプリミティブ データ型は値によって渡され、非プリミティブは参照によって渡されます。
メモ化とは?
メモ化は、計算された値をキャッシュに保存し、再度必要になったときに再計算せずに使用する手法です。 計算が非常に重い場合、コードの実行が高速化されます。 時間と比較して大きな問題ではないストレージのトレードオフがあります。
const memo = {}; function add(a, b) { const key = `${a}-${b}`; // checking whether we computed the value already or not if (memo[key]) { console.log("Not computing again"); return memo[key]; } // adding the newly computed value to cache // here cache is a simple global object memo[key] = a + b; return memo[key]; } console.log(add(1, 2)); console.log(add(2, 3)); console.log(add(1, 2));
メモ化を示す簡単な例です。 ここで、2 つの数値を加算することは、難しい計算ではありません。 あくまでデモ用です。
残りのパラメータは何ですか?
残りのパラメーターは、関数内の残りのすべてのパラメーターを収集するために使用されます。 最小 2 つの引数を受け入れ、最大で任意の数のパラメーターを受け入れることができる関数があるとします。 引数の最大数がないため、最初の 2 つのパラメーターを通常の変数で収集し、残りのすべてのパラメーターをrest 演算子を使用して残りのパラメーターで収集できます。
function sample(a, b, ...rest) { console.log("Rest parameter", rest); } sample(1, 2, 3, 4, 5);
残りのパラメーターは、上記の例の最後の 3 つの引数の配列になります。 これにより、関数のパラメーターをいくつでも持つことができます。
1 つの関数は、残りのパラメーターを 1 つだけ持つことができます。 また、残りのパラメーターは、パラメーターの順序の最後にある必要があります。
オブジェクト破壊とは?
オブジェクトの分解を使用して、オブジェクトから変数にアクセスし、それらをオブジェクト キーと同じ名前の変数に割り当てます。 例を見てみましょう。
const object = { a: 1, b: 2, c: 3 }; // Object destructuring const { a, b, c } = object; // Now, a, b, c will be used as normal variables console.log(a, b, c);
次のように、同じ行で非構造化変数の変数を変更できます。
const object = { a: 1, b: 2, c: 3 }; // Changing the names of `a` and `b` const { a: changedA, b: changedB, c } = object; // Now, changedA, changedB, c will be used as normal variables console.log(changedA, changedB, c);
配列破壊とは?
配列の分解は、配列から変数にアクセスし、それらを変数に割り当てるために使用されます。 例を見てみましょう。
const array = [1, 2, 3]; // Array destructuring // It's based on the index of the array const [a, b, c] = array; // Now, we can use a, b, c as normal variables console.log(a, b, c);
イベント キャプチャとイベント バブリングとは
イベントキャプチャとイベント バブリングは、HTML DOM でのイベント伝達の 2 つの方法です。 2 つの HTML 要素があり、一方が他方の内部にあるとします。 そして、内側の要素でイベントが発生します。 ここで、イベント伝搬モードによって、これらのイベントの実行順序が決定されます。
イベント バブリング:最初に要素でイベント ハンドラーを実行し、次にその要素を実行し、最後に最上位の要素まで実行します。 これは、すべてのイベントのデフォルトの動作です。
イベントキャプチャ:このタイプのイベント伝播を使用する必要があることをイベントで指定する必要があります。 イベントリスナーを追加するときに指定できます。 イベントキャプチャが有効になっている場合、イベントは次の順序で実行されます。
- イベントは、最上位の要素からターゲット要素までの実行を開始します。
- ターゲット要素のイベントが再度実行されます。
- 最上位の要素がアップするまで、バブリング イベントの伝播が再び発生します。
イベントハンドラーでevent.stopPropogation
メソッドを呼び出すことにより、イベントの伝播を停止できます。
JavaScript の Promise とは何ですか?
Promise
オブジェクトは、将来的に成功または失敗の状態で完了する非同期操作に使用されます。
Promise
は、次のいずれかの状態になります。
-
pending
– 操作がまだ進行中の場合。 -
fulfilled
– 操作が正常に完了したとき。 結果 (ある場合) は成功状態になります。 -
rejected
– 操作が失敗して完了した場合。 失敗した理由 (エラー) が表示されます。
成功例と失敗例の 2 つの例を見てみましょう。
// Promise which will complete successfully const successPromise = new Promise((resolve, reject) => { setTimeout(() => { resolve({ message: "Completed successfully" }); }, 300); }); successPromise .then((data) => { console.log(data); }) .catch((error) => { console.log(error); }); // Promise which will complete with failure state const failurePromise = new Promise((resolve, reject) => { setTimeout(() => { reject(new Error("Failing the promise for testing")); }, 300); }); failurePromise .then((data) => { console.log(data); }) .catch((error) => { console.log(error); });
必要に応じてthen
複数のチェーンを使用できます。 以前に返されたデータは、 then
のコールバックで受け入れられます。
JavaScript のさまざまなタイプのスコープについて説明する
JavaScript には 2 種類のスコープがあります。 グローバル スコープとローカル スコープ。
関数スコープとブロック スコープについても聞いたことがあるかもしれません。 これらは、それぞれvar
とlet
、 const
のローカル スコープです。
自己呼び出し関数とは何ですか?
自己呼び出し関数は、作成直後に実行される名前のない関数です。 いくつかの例を見てみましょう。
// Without any parameters (function sayHello() { console.log("Hello, World!"); })(); // With parameters (function add(a, b) { console.log("Sum", a + b); })(1, 2);
例で見たように、自己呼び出し関数に引数を渡すこともできます。
アロー関数とは
アロー関数は、いくつかの変更を加えた通常の関数への構文糖衣です。 これらは、一般的なユース ケースでは通常の関数のように動作します。 アロー関数は、コールバックが必要な場合に便利です。 その構文を見てみましょう。
// arrow functions will return by default if it doesn't have any brackets let add = (a, b) => a + b; console.log(add(1, 2));
アロー関数と通常の関数にはいくつかの違いがあります。
- アロー関数には独自の
this
バインディングがありません。 アロー関数内のthis
キーワードは、その親スコープthis
を参照します。 - アロー関数はコンストラクタ関数として使用できません
コールバックとは何ですか?
コールバックは、その関数内で呼び出される別の関数に渡される関数です。 コールバックの使用は、JavaScript では一般的なことです。 例を見てみましょう。
function sample(a, b, callback) { const result = a + b; callback(result); } function finished(result) { console.log("Finished with", result); } sample(1, 2, finished);
関数finished
は、コールバックとしてsample
に渡されます。 何らかのアクションを実行した後、 finished
関数が結果で呼び出されます。 プロミス、setTimeout などの非同期操作で主にコールバックの使用が見られます。
エラーにはどのような種類がありますか?
JavaScript のエラーを確認してみましょう。
ReferenceError : このエラーは、アクセスしている変数が使用可能な場合に発生します。
TypeError:エラーが他の種類のエラーと一致しない場合、JavaScript はこのエラーをスローします。 また、データと互換性のないアクションを実行しようとしたときにも発生します。
SyntaxError:このエラーは、JavaScript の構文が正しくない場合に発生します。
他にもいくつかの種類のエラーがあります。 しかし、これらは JavaScript の一般的なエラー タイプです。
JavaScript の変数のさまざまなスコープは何ですか?
JavaScript には 2 つの変数のスコープがあります。 var
キーワードを使用して宣言された変数には関数スコープがあり、 let
およびconst
で宣言された変数にはブロック スコープがあります。
これらの変数のスコープの詳細については、17 番目の質問を参照してください。
JavaScript のエスケープ文字とは何ですか?
バックスラッシュは JavaScript のエスケープ文字です。 通常は印刷できない特殊文字を印刷するために使用されます。 文字列が 2 番目のアポストロフィで終了するため、通常は実行できない文字列内にapostrophe (')
を出力したいとします。 その場合、その時点で文字列が終了しないようにエスケープ文字を使用します。
const message = 'Hi, I\'m Geekflare'; console.log(message);
外側の単一のアポストロフィを二重のアポストロフィに置き換えることで、エスケープ文字を使用せずに上記の出力を実現できます。 ただし、これはエスケープ文字の使用方法の単なる例です。 \n
、 \t
、 \\
などのエスケープ文字が絶対に必要な文字は他にもあります。
BOM と DOM とは何ですか?
ブラウザ オブジェクト モデル (BOM):すべてのブラウザには、現在のブラウザ ウィンドウを表す BOM があります。 これには、ブラウザー ウィンドウの操作に使用される最上位のウィンドウ オブジェクトが含まれています。
ドキュメント オブジェクト モデル (DOM):ブラウザーは、HTML がツリー構造に読み込まれるときに DOM を作成します。 DOM API を使用して HTML 要素を操作できます。
画面オブジェクトとは?
画面オブジェクトは、グローバル ウィンドウ オブジェクトのプロパティの 1 つです。 現在のブラウザ ウィンドウが表示される画面のさまざまなプロパティが含まれています。 プロパティには、 width 、 height 、 orientation 、 pixelDepthなどがあります。
結論
上記のすべての質問に対して、フォローアップの質問がある場合があります。 したがって、上記のすべての質問に関する概念を準備する必要があります。
また、よくある Java 面接の質問と回答を調べることもできます。
ハッピーラーニング