導入

JavaScript 言語とは何ですか?

JavaScript は軽量のスクリプト言語です。いわゆる「スクリプト言語」とは、オペレーティング システムを開発する機能はなく、他の大規模なアプリケーション (ブラウザなど) を制御する「スクリプト」を記述するためにのみ使用されることを意味します。

JavaScript も組み込み言語です。多くのコア構文は提供されず、一部の数学的および論理的操作を行うためにのみ使用できます。 JavaScript 自体は I/O (入力/出力) 関連の API を提供せず、ホスト環境 (ホスト) に依存して API を提供します。そのため、JavaScript は、より大規模なアプリケーション環境に埋め込んで、提供される基盤となる API を呼び出す場合にのみ適しています。ホスト環境。

現在、JavaScript が組み込まれたホスト環境は数多くあります。最も一般的な環境はブラウザですが、Node プロジェクトであるサーバー環境もあります。

構文の観点から見ると、JavaScript 言語は「オブジェクト モデル」言語です。さまざまなホスト環境は、このモデルを使用して独自の機能や操作インターフェイスを記述し、JavaScript を通じてこれらの機能を制御します。ただし、JavaScript は純粋な「オブジェクト指向言語」ではなく、他のプログラミング パラダイム (関数型プログラミングなど) をサポートしています。このため、JavaScript にはほぼすべての問題に対して複数の解決策が用意されています。この本を読むと、JavaScript 構文の柔軟性に驚かれるでしょう。

JavaScript のコア構文は非常に簡潔で、基本的な構文構成要素 (演算子、制御構造、ステートメントなど) と標準ライブラリ (ArrayDate などのさまざまな関数を持つ一連のオブジェクト) の 2 つの部分のみを含みます。 、「数学」など)。さらに、さまざまなホスティング環境では、JavaScript 呼び出し用の追加 API (その環境でのみ使用できるインターフェイス) が提供されます。ブラウザを例に挙げると、ブラウザが提供する追加 API は 3 つの主要なカテゴリに分類できます。

・ブラウザ制御クラス:ブラウザを操作します。

  • DOM クラス: Web ページのさまざまな要素を操作します。
  • Webクラス: インターネットのさまざまな機能を実装します。

ホスト環境がサーバーの場合、ファイル操作 API やネットワーク通信 API など、さまざまなオペレーティング システム API が提供されます。これらは Node 環境で見つけることができます。

本書は主に JavaScript のコア構文とブラウザ Web 開発の基礎知識を紹介するものであり、Node.js には関与しません。本書全体は次の 4 つの部分に分けることができます。

  • 基本的な文法
  • 標準ライブラリ
  • ブラウザAPI -DOM

JavaScript 言語には多くのバージョンがあります。本書の内容は主に、JavaScript 構文を学習するための基礎となる ECMAScript 5.1 バージョンに基づいています。 ES6 以降の構文については、私が書いた ["ECMAScript 6 の紹介"] (http://es6.ruanyifeng.com/) を参照してください。

JavaScript を学ぶ理由

JavaScript 言語には、学習する価値のある注目すべき機能がいくつかあります。プログラミングを学習するための入門言語としても、日常の開発用の作業言語としても適しています。これは、最も明るい未来を持つ最も有望なコンピューター言語の 1 つです。

ブラウザを制御する機能

JavaScript の発明の目的は、ブラウザの組み込みスクリプト言語として機能し、Web 開発者にブラウザを制御する機能を提供することです。現在、すべてのブラウザでサポートされている唯一のユニバーサル ブラウザ スクリプト言語です。これにより、Web ページでさまざまな特殊効果を表示し、ユーザーに優れたインタラクティブなエクスペリエンスを提供できます。

現在、世界中のほぼすべての Web ページで JavaScript が使用されています。これを利用しないとWebサイトの使いやすさや効率性が大幅に低下し、便利で使いやすいWebサイトにはなりません。

インターネット開発者にとって、美しい Web ページ、ユーザーに満足のいくオンライン エクスペリエンス、ブラウザベースのさまざまな便利な機能、フロント エンドとバック エンド間の密接で効率的な接続を提供したい場合、JavaScript は不可欠なツールです。

幅広い使用領域

近年、JavaScript の利用範囲は徐々にブラウザを超え、世界共通のシステム言語として発展しつつあります。

(1) ブラウザのプラットフォーム化

HTML5 の登場により、ブラウザ自体はますます強力になり、Web ページを閲覧するだけでなく、ローカル ファイルの操作や画像の操作など、多くのシステム関数を呼び出すことができるようになりました。 、カメラやマイクなどを呼び出します。これにより、JavaScript は以前は想像もできなかった多くのことを実行できるようになります。

(2)ノード

Node プロジェクトを使用すると、JavaScript を使用して大規模なサーバー側プロジェクトを開発できるようになります。JavaScript を使用して Web サイトのフロントエンドとバックエンドの両方を開発することが現実になりました。一部の組み込みプラットフォーム (Raspberry Pi) は Node をインストールできるため、JavaScript を使用してこれらのプラットフォーム用のアプリケーションを開発できます。

(3) データベースの操作

JavaScript はデータベースの操作にも使用できます。 NoSQL データベースの概念自体は、JSON (JavaScript Object Notation) 形式に基づいて誕生しました。ほとんどの NoSQL データベースでは、JavaScript を直接操作できます。 SQL 言語に基づくオープン ソース データベースである PostgreSQL は、オペレーティング言語として JavaScript をサポートしており、SQL クエリ言語を部分的に置き換えることができます。

(4)モバイルプラットフォーム開発

JavaScript はモバイル アプリケーションの開発言語にもなりつつあります。一般的に、Android プラットフォームは Java 言語を使用して開発され、iOS プラットフォームは Objective-C または Swift 言語を使用して開発されます。多くの人々が、JavaScript をプラットフォーム間でユニバーサルな開発言語にするために取り組んでいます。

PhoneGap プロジェクトは、iOS と Android の両方で実行できるように、JavaScript と HTML5 をコンテナーにパッケージ化します。 Facebook の React Native プロジェクトは、JavaScript で書かれたコンポーネントをネイティブ コンポーネントにコンパイルして、優れたパフォーマンスを実現します。

Mozilla Foundation のモバイル オペレーティング システム Firefox OS は、オペレーティング システムのプラットフォーム言語として JavaScript を直接使用していますが、残念ながらこのプロジェクトは成功しませんでした。

(5) 埋め込みスクリプト言語

Adobe の有名な PDF リーダー Acrobat や Linux デスクトップ環境 GNOME 3 など、埋め込みスクリプト言語として JavaScript を使用するアプリケーションが増えています。

(6) クロスプラットフォームのデスクトップ アプリケーション

Chromium OS や Windows 8 などのオペレーティング システムは、JavaScript アプリケーションを直接サポートします。 Mozilla の Open Web Apps プロジェクト、Google の Chrome App プロジェクト、GitHub の Electron プロジェクト、および [TideSDK プロジェクト] ](http://tidesdk.multipart.net/docs/user-dev/generated/) を使用すると、ブラウザに依存せずに、Windows、Mac OS、Android などの複数のデスクトップ プラットフォームで実行されるプログラムを作成できます。

(7) まとめ

JavaScript を使用すると、最終的には 1 つの言語だけを使用して、さまざまなプラットフォーム (デスクトップ、サーバー、モバイルなど) に適応するプログラムを開発できるようになることが期待されています。 2013 年 9 月の時点では、その年に GitHub で最も使用されていた言語は JavaScript でした。

有名なプログラマーのジェフ・アトウッドは、「アトウッドの法則」 を提案しました。

「JavaScript で作成できるアプリケーションは、最終的には JavaScript で作成されます。」 (JavaScript で作成できるアプリケーションは、最終的には JavaScript で作成されます。)

学びやすさ

JavaScript の学習には、他の言語の学習に比べていくつかの利点があります。

(1) 学習環境はどこにでもあります

ブラウザがあれば JavaScript プログラムを実行でき、テキスト エディタがあれば JavaScript プログラムを作成できます。これは、ほとんどすべてのコンピューターが、複雑な IDE (統合開発環境) やコンパイラーをインストールする必要がなく、JavaScript 学習環境をネイティブに提供することを意味します。

(2) シンプルさ

他のスクリプト言語 (Python や Ruby など) と比較すると、JavaScript の構文は比較的単純で、文法上の特徴はあまりありません。また、文法の複雑な部分を学ぶ必要はありません。ほとんどの操作は簡単なコマンドだけで完了できます。

(3) 主流言語との類似性

JavaScript の構文は C/C++ および Java に非常に似ています。これらの言語を学習したことがあれば (実際、ほとんどの学校で JavaScript を教えています)、JavaScript を始めるのは非常に簡単です。

核となる構文は難しくありませんが、JavaScript の複雑さは他の 2 つの側面に反映されていることに注意してください。

まず、多数の外部 API が必要です。 JavaScript が機能するには、他のコンポーネントと連携する必要があります。これらの外部コンポーネントは非常に多様で多数あるため、それらを習得するのは簡単ではありません。

次に、JavaScript 言語には設計上の欠陥がいくつかあります。非常に不合理な場所もあれば、奇妙な結果を生み出す場所もあります。 JavaScript を学習するとき、どこに落とし穴があるかを理解するのに時間の大部分が費やされます。 Douglas Crockford は、「JavaScript: The Good Parts」(http://javascript.crockford.com/) という有名な本を書きました。これは、この言語には多くの悪い点があるということを意味しており、それは本を書くのに必要な量であるに違いありません。それをわかりやすく説明すること。他のプログラマーは、JavaScript プログラムをより合理的に記述するためには、JavaScript を使用してプログラムを記述することはできず、CoffeeScript、TypeScript、Dart などの新しい言語を発明する必要があると感じています。これらの新しい言語の発明の目的はさらに詳しくなります。以下にはこの要素があります。

それにもかかわらず、JavaScript の地位は依然として揺るぎないもののようです。さらに、言語標準の急速な進化により、JavaScript はより強力になり、文法上の欠陥や癖が補われています。したがって、JavaScript は学ぶ価値があり、始めるのはそれほど難しいことではありません。

パワフルなパフォーマンス

JavaScript のパフォーマンス上の利点は、次の側面に反映されています。

**(1) 柔軟な文法と強い表現力。 **

JavaScript は、C 言語に似た明確な手続き型プログラミングと、並行処理 (コンカレント) を記述するために使用できる柔軟な関数型プログラミングの両方をサポートしています。これらの構文機能は非常に強力であることが証明されており、多くの状況、特に非同期プログラミングで使用できます。

JavaScript のすべての値はオブジェクトであるため、プログラマーに柔軟性と利便性を提供します。面倒な事前定義を必要とせず、必要に応じていつでも簡単にデータ構造を作成できるためです。

JavaScript 標準は依然として急速に進化しており、常に合理化され、より適切な構文機能が追加されています。

**(2) コンパイルと実行をサポートします。 **

JavaScript 言語自体はインタープリタ型言語ですが、最新のブラウザでは JavaScript がコンパイルされて実行されます。プログラムは高度に最適化され、実行効率はバイナリ プログラムに近くなります。さらに、JavaScript エンジンは急速に開発されており、そのパフォーマンスはますます向上します。

さらに、JavaScript エンジンの中間コード形式である WebAssembly 形式もあり、すべてバイナリ コードです。コンパイル手順がスキップされるため、ネイティブ バイナリ コードに近い実行速度を実現できます。さまざまな言語 (主に C および C++) を WebAssembly にコンパイルすることでブラウザ上で実行できます。

**(3) イベント駆動型のノンブロッキング設計。 **

JavaScript プログラムはイベント駆動型のノンブロッキング設計を採用でき、サーバー側の同時実行性の高い環境に適しており、通常のハードウェアは大量のアクセスに耐えることができます。

オープン性

JavaScript はオープン言語です。その標準である ECMA-262 は、非常に詳細かつ明確な ISO 国際標準です。この標準の主な実装 (V8 エンジンや SpiderMonkey エンジンなど) はオープンで高品質です。これにより、その言語がどの企業や個人にも属さないことが保証され、著作権や特許の問題も発生しません。

言語標準は TC39 委員会によって開発され、透明性をもって運営され、すべての議論が公開され、会議の議事録が公開されます。

さまざまな企業の JavaScript 実行環境は非常に互換性があり、プログラムは調整を行わずに、またはわずかな調整を行うだけで、すべてのブラウザで実行できます。

コミュニティサポートと雇用の機会

JavaScript は世界中のプログラマーによって使用されており、巨大なコミュニティ、豊富な文献や書籍、豊富なコード リソースがあります。使用する必要があるほとんどの関数に利用できるオープン ソース関数ライブラリが複数あります。

プロジェクト リーダーとして、開発者として多数の JavaScript プログラマーを採用することは難しくありません。また、JavaScript の仕事を見つけることも難しくありません。

実験環境

このチュートリアルには、ブラウザがコンピュータにインストールされている限り、実験に使用できるサンプル コードが多数含まれています。読者は読みながらサンプルを実行し、理解を深めることができます。

Chrome ブラウザの「開発者ツール」の「コンソール」は、JavaScript コードを実行するのに最適な環境です。

Chromeブラウザの「コントロール」を入力するには2つの方法があります。

  • 直接入力: Option + Command + J (Mac) または Ctrl + Shift + J (Windows/Linux) を押します。
  • 開発者ツールに入る: 開発者ツールのショートカット キーは F12、または「Option + Command + I」 (Mac) および「Ctrl + Shift + I」 (Windows/Linux) で、[コンソール] パネルを選択します。

コンソールに入ったら、プロンプトの後にコードを入力し、「Enter」キーを押すと、コードが実行されます。 「Shift + Enter」キーを押すと、コードは新しい行に分割され、実行はトリガーされません。このチュートリアルを読むときは、コードをコンソールにコピーして実験することをお勧めします。

試しに、次のプログラムを「コンソール」にコピーし、Enter キーを押して実行結果を確認してください。

関数greetMe(あなたの名前) {
  console.log('Hello ' + あなたの名前);
}

挨拶してください('世界')
// こんにちは世界

作者: wangdoc

アドレス: https://wangdoc.com/

ライセンス: クリエイティブ・コモンズ 3.0