「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JavaScriptとは何ですか?すべてをカバーする 1 つの定義。

JavaScriptとは何ですか?すべてをカバーする 1 つの定義。

2024 年 8 月 20 日に公開
ブラウズ:969

What is JavaScript? One Definition to Cover It All.

これは面接で聞かれるかもしれませんし、聞かれないかもしれませんが、これを読めば 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 に固有のものです。

機能的

これは、関数の使用を強調することで宣言型コードの作成を促進するプログラミング パラダイムです。重要な概念のいくつかは次のとおりです:

  1. 純粋関数: 指定された入力に対して常に同じ出力を生成し、副作用のない関数。
  2. 高階関数: 他の関数を引数として受け取ったり、結果として返したりできる関数。
  3. 不変性: データを不変として扱います。ただし、JavaScript はデフォルトでこれを強制しません。
  4. 第一級関数: 関数は第一級市民として扱われます。つまり、変数に代入したり、引数として渡したり、他の関数から返すことができます。
  5. 関数構成: 単純な関数を組み合わせて複雑な機能を構築します。

JavaScript は、他のパラダイムとともにこれらの関数型プログラミングの概念をサポートしているため、開発者は必要に応じて関数型テクニックを使用できます。

命令的

命令型プログラミングは、プログラムが目的の状態に到達するために必要な一連のステップをコードで明示的に記述するパラダイムです。 JavaScript は、命令型コードの作成に必要な変数、ループ、条件、演算子などの必要な構成要素をすべて完全にサポートしています。このアプローチにより、プログラムの実行フローを正確に制御できます。アルゴリズムの実装や複雑な状態変化の管理によく使用されます。

プロトタイプベースのオリエンテーション

JavaScript はプロトタイプベースのオブジェクト モデルを使用します。これは、オブジェクトが主要なエンティティであるオブジェクト指向プログラミングの形式です。クラスベースの言語とは異なり、JavaScript はプロトタイプを使用して継承を実装し、オブジェクト間でプロパティとメソッドを共有します。

JavaScript におけるプロトタイプベースの方向性の重要な側面は次のとおりです:

  1. オブジェクトの作成: 最初にクラスを定義せずに、オブジェクトを直接作成できます。

  2. プロトタイプ チェーン: 各オブジェクトには、そのプロトタイプと呼ばれる別のオブジェクトへのリンクがあります。オブジェクトでプロパティまたはメソッドが見つからない場合、JavaScript はプロトタイプ内でそれを検索し、次にプロトタイプのプロトタイプを検索します。

  3. 継承: オブジェクトは、プロトタイプ チェーンを通じて他のオブジェクトからプロパティとメソッドを継承できます。

このプロトタイプベースのシステムにより、強力かつ柔軟なオブジェクト指向プログラミングが可能になります。

イベント駆動型アーキテクチャ

JavaScript のイベントベースのアーキテクチャは、プログラムのフローがユーザーのアクション、センサー出力、または他のプログラムからのメッセージなどのイベントによって決定されるプログラミング アプローチです。これは、JavaScript が Web ブラウザと対話し、非同期操作を処理する方法の基本です。

JavaScript のイベントベースのアーキテクチャの重要な側面は次のとおりです:

  1. イベント リスナー: 特定のイベントを「リッスン」し、それらのイベントが発生したときに実行する関数。

  2. イベント ループ: イベントをチェックしてリスナーにディスパッチする継続的なプロセス。

  3. 非同期プログラミング: メイン スレッドをブロックせずにコードを実行できます。これは応答性の高い Web アプリケーションにとって重要です。

このアーキテクチャにより、JavaScript はユーザー インタラクション、API 呼び出し、タイマー、その他の非同期操作を効率的に処理できるため、インタラクティブな Web アプリケーションの作成に最適です。

これらすべての概念を組み合わせることで、JavaScript は Web、モバイル、サーバー、AR などのさまざまなプラットフォームで使用できる多用途言語になります。


注意事項

面接では、次の定義を覚えておいてください:

JavaScript は、シングルスレッドで動的に型付けされ、解釈されてコンパイルされる言語です。これはクロスプラットフォーム言語ですが、ページにインタラクティブ性を追加するために主に Web で使用されます。

リソース

フロントエンド キャンプ
Javascript はシングルスレッド言語であるとはどういう意味ですか
インタープリタ型プログラミング言語とコンパイル型プログラミング言語

リリースステートメント この記事は次の場所に転載されています: https://dev.to/thesanjeevsharma/what-is-javascript-one-definition-to-cover-it-all-43l2?1 権利侵害がある場合は、[email protected] までご連絡ください。それを削除するには
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3