これは面接で聞かれるかもしれませんし、聞かれないかもしれませんが、これを読めば JS 専門用語をよりよく理解できると信じてください。 (面接中にこれを使用する際のブラウニーポイント)。
これはフロントエンド インタビューの質問シリーズの質問 #3 です。準備をレベルアップしたい場合、または常に最新情報を入手したい場合は、Frontend Camp の待機リストに参加することを検討してください。
JavaScript は、オブジェクト指向、関数型、命令型スタイルなどの複数のパラダイムをサポートする、シングルスレッドで動的に型付けされ、解釈されるプログラミング言語です。プロトタイプベースのオブジェクト指向とイベント駆動型アーキテクチャを特徴としています。
これは JavaScript のオタク的な定義です。しかし、それぞれの用語は何を意味するのでしょうか?調べてみましょう。
JavaScript はシングルスレッド言語であり、メインの実行スレッドが 1 つだけであることを意味します。これは、呼び出しスタックが 1 つであることも意味します。関数呼び出しが行われると、呼び出しスタックの先頭に追加されます。実行が完了すると、スタックからポップされ、コントロールはコール スタック内の次の関数に移動します。タスクを順番に実行することは JavaScript の性質の基本ですが、非同期操作を実行するための API も提供します (fetch と setTimeout はいくつかの例です)。
JavaScript では、変数は型を使用して明示的に宣言されません。型は実行時に推論されるため、変数ではなく値に関連付けられます。型は、プログラムのライフサイクル中に変更される可能性もあります。この機能により JS は柔軟になりますが、型関連のエラーが発生しやすい可能性があります。 TypeScript などのツールは、開発中に静的型を追加するのに役立ちますが、最終的には JS にコンパイルされます。
Java などのコンパイル済み言語とは異なり、JavaScript は実行前にマシンコードにコンパイルされません。代わりに、コードは実行時に 1 行ずつ読み取られ、解釈され、実行されます。ただし、パフォーマンスを向上させるために、最新の JavaScript エンジンは、コードのチャンクをその場でコンパイルする Just-In-Time (JIT) コンパイルを使用します。このアプローチにより、実行速度が向上します。
このプログラミング パラダイムは、コードをクラスまたはプロトタイプのインスタンスであるオブジェクトに編成します。 class キーワードは ES6 で糖衣構文のために導入されました。内部では、JavaScript のクラスは依然としてプロトタイプを使用しています。 OOP のこの実装は JavaScript に固有のものです。
これは、関数の使用を強調することで宣言型コードの作成を促進するプログラミング パラダイムです。重要な概念のいくつかは次のとおりです:
JavaScript は、他のパラダイムとともにこれらの関数型プログラミングの概念をサポートしているため、開発者は必要に応じて関数型テクニックを使用できます。
命令型プログラミングは、プログラムが目的の状態に到達するために必要な一連のステップをコードで明示的に記述するパラダイムです。 JavaScript は、命令型コードの作成に必要な変数、ループ、条件、演算子などの必要な構成要素をすべて完全にサポートしています。このアプローチにより、プログラムの実行フローを正確に制御できます。アルゴリズムの実装や複雑な状態変化の管理によく使用されます。
JavaScript はプロトタイプベースのオブジェクト モデルを使用します。これは、オブジェクトが主要なエンティティであるオブジェクト指向プログラミングの形式です。クラスベースの言語とは異なり、JavaScript はプロトタイプを使用して継承を実装し、オブジェクト間でプロパティとメソッドを共有します。
JavaScript におけるプロトタイプベースの方向性の重要な側面は次のとおりです:
オブジェクトの作成: 最初にクラスを定義せずに、オブジェクトを直接作成できます。
プロトタイプ チェーン: 各オブジェクトには、そのプロトタイプと呼ばれる別のオブジェクトへのリンクがあります。オブジェクトでプロパティまたはメソッドが見つからない場合、JavaScript はプロトタイプ内でそれを検索し、次にプロトタイプのプロトタイプを検索します。
継承: オブジェクトは、プロトタイプ チェーンを通じて他のオブジェクトからプロパティとメソッドを継承できます。
このプロトタイプベースのシステムにより、強力かつ柔軟なオブジェクト指向プログラミングが可能になります。
JavaScript のイベントベースのアーキテクチャは、プログラムのフローがユーザーのアクション、センサー出力、または他のプログラムからのメッセージなどのイベントによって決定されるプログラミング アプローチです。これは、JavaScript が Web ブラウザと対話し、非同期操作を処理する方法の基本です。
JavaScript のイベントベースのアーキテクチャの重要な側面は次のとおりです:
イベント リスナー: 特定のイベントを「リッスン」し、それらのイベントが発生したときに実行する関数。
イベント ループ: イベントをチェックしてリスナーにディスパッチする継続的なプロセス。
非同期プログラミング: メイン スレッドをブロックせずにコードを実行できます。これは応答性の高い Web アプリケーションにとって重要です。
このアーキテクチャにより、JavaScript はユーザー インタラクション、API 呼び出し、タイマー、その他の非同期操作を効率的に処理できるため、インタラクティブな Web アプリケーションの作成に最適です。
これらすべての概念を組み合わせることで、JavaScript は Web、モバイル、サーバー、AR などのさまざまなプラットフォームで使用できる多用途言語になります。
面接では、次の定義を覚えておいてください:
JavaScript は、シングルスレッドで動的に型付けされ、解釈されてコンパイルされる言語です。これはクロスプラットフォーム言語ですが、ページにインタラクティブ性を追加するために主に Web で使用されます。
フロントエンド キャンプ
Javascript はシングルスレッド言語であるとはどういう意味ですか
インタープリタ型プログラミング言語とコンパイル型プログラミング言語
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3