ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptとは何ですか?すべてをカバーする 1 つの定義。

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

PHPz
PHPzオリジナル
2024-08-16 06:12:33596ブラウズ

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 はシングルスレッド言語であるとはどういう意味ですか
インタープリター型プログラミング言語とコンパイル型プログラミング言語

以上がJavaScriptとは何ですか?すべてをカバーする 1 つの定義。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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