JavaScriptの開発の歴史

A、JavaScript開発

1.誕生

インターネットが生まれたのJavaScriptので、ブラウザや開発の発展が続きます。

1990年には、原子力エネルギーの欧州の研究所、インターネットで(CERN)の科学者(インターネット)は、ワールド・ワイド・ウェブ(ワールドワイドウェブ)の発明に基づいて、再度、インターネットからファイルを閲覧することができます。インターネット回線、ハードウェアとソフトウェア、TCPを介して電子データ伝送の集計だけでなく、主要なサービスの契約があり、IPプロトコル.Internetワールド・ワイド・ウェブWWWを提供している、ファイル転送FTP、電子メール等のEメール、Telnetのリモートログインは、ワールド・ワイド・ウェブでインターネット上に存在する、インターネットの主要部分を構成し、一緒に数多くのウェブサイトやウェブページの集合である。あなたが基盤として、インターネットを使用している場合は、ワールド・ワイド・ウェブは、インターネットのアプリケーションとして見ることができます

1992年には、スーパーコンピュータ応用のための米国の国立センター(NCSA)は、人類の歴史ブラウザモザイクで最初に開発しました。

1994年には、NCSAは、後にNetscapeの名前を変更した資本主義の会社はモザイクコミュニケーションズを設立した合弁会社を、プログラマ。新世代ブラウザ、一般ユーザ用のNetscape Navigator1.0バージョンを開発し、1で90%以上の市場シェアは急襲を落ちました。

ネットスケープ社はすぐにブラウザの必要性が制御動作にスクリプト言語のWebページを埋め込むことができました。その後、速度が非常に遅く、ネットワークが非常に高価であり、いくつかの操作を完了するために、サーバーを必要としないので、これらの操作は、このように効率を向上させ、ブラウザで完了することができます。:彼らは、スクリプト言語がある想定功能不需要太强,语法简单,容易学习和部署。彼らは、SunのJavaの出現と一致し、両社の強力な組み合わせは、NetScript会社はサンのその彼らの影響力は、1995年に、ブラウザに拡張、Java言語の勢いを使用したいです言語の最初のバージョンを完成設計するプログラマを雇うために10日には、JavaScriptのよう命名、中国では、JavaScriptがJavaサプリメントであることを発表しました。

  • 基本的な構文:C言語とJava言語を学びます
  • データ構造:値と元の値を含む、Java言語を学習オブジェクトの二つの主要なカテゴリに分かれて
  • イディオム:スキーマ言語とAWK言語、クロージャの導入を学びます
  • 原型継承モデル:自己は言語を学びます
  • 正規表現言語:Perl言語リファレンス
  • 文字列と配列処理:Python言語を学びます

2. JavaScriptとJavaの関係

JavaScriptのオブジェクトや基本的な文法システムは、模倣のJavaに設計されています。

JavaScriptは、データ型の言語機能は独立しており、二つのオブジェクトとプロトタイプ継承チェーン間のJavaベースの構文の最大の違いです。

JavaScriptが直接インタプリタにより実行される、コンパイルする必要はありません。

3. JavaScriptとECMAとの関係

1996年、マイクロソフトはIE3.0に建てられ、類似したJavaScript言語のJScriptの模造品を開発している、Netscapeの状況同社は、ブラウザのスクリプト言語での優位性の損失に直面しています。標準ECMAのための国際機関(欧州電子計算機は、協会を製造)、マイクロソフトに抵抗する - 失敗は太ももの腕を打つために、Netscapeは兄を見つけました。

1997年には、ECMA 262標準のファイル編成が発表され、標準のブラウザのスクリプト言語を定義し、この言語はECMAScriptのとなっている(ECMA-262)、。

4. JavaScriptのバージョン

1997年には、1.0のリリースをECMAScriptの。

1998年には、2.0のリリースをECMAScriptの。

1999年には、3.0のリリースをECMAScriptの。

ECMAScriptのとして公開ごく一部の既存の機能を向上させること含むことになるバージョン3.0の2007年から2009年、ECMAScriptの4.0ドラフトリリース4.0の開発を中断し、大幅なアップグレードをしたが、ドラフトは当事者間の、あまりにも過激、重大な相違点です、 3.1は、まもなく会議の後、ECMAScriptの5と改名しました。

2011年には、EMAScript 5.1リリース、およびISO国際標準となっては、2012年までに、すべての主要なブラウザは、ECMAScriptの5.1のすべての機能をサポートしています。

2013-2015は、ECMAScriptの6、リリースのECMAScript 6を議論し、正式に2015年にリリースされ、ECMAScriptの2015年に社名を変更しました。

5.開発 - インターネット標準(RFC)

  • ドラフトインターネット(インターネットドラフト)
  • この段階の初めから提案された標準は、RFC文書(のProposed Standard)になり
  • 規格案(ドラフト規格)
  • インターネット標準(インターネット標準)

二つは、JavaScriptモジュラー開発

モジュラーモジュールの分解に複雑なシステムを指し、利点があります。

①コードの再利用、容易な管理コード、コードの後ろには、メンテナンスや変更を容易にする一方、

②独立したファイルは別のモジュール、別のスコープです。外向きのグローバル変数の汚染を避けるために、唯一の特定の変数や関数を露呈しました。

1.ノーモジュラー

アヤックスは、JSは複数のWebページ、単純なアニメーションのフォームを検証するために使用される、前に現れました。

2006年には、AJAX概念が提唱された、フロントは戻りデータをサーバーと運用能力への要求を送信するためのイニシアチブを持って、ゆっくりと「リッチクライアント」の開発に従来のWebページ。より多くのフロントエンドのビジネス・ロジック、コード、より多くの露出の問題のいくつかそう:

  • グローバル変数との競合
  • 関数の名前の競合
  • 経営不振の依存性

要約「モジュラー」という概念は、ポイントが対処する必要がどのような痛みを再生します:

  • コードモジュールのパッケージを確保するには?外側のモジュールを汚染しない任意のコード
  • どのように一意にモジュールを特定するには?
  • どのように優雅なAPIモジュールにさらされていますか?グローバル変数を増加させることなく、
  • 依存モジュールは、どのように使いやすいですか?

2. CommonJS

2009年には、新しい時代の先駆け、判明nodejs、人々は、サーバー側のコードを記述するのJSを使用することができます。

CommonJSモジュール仕様は、3つの部分に分割される:モジュールリファレンス(必要)、モジュール定義(エクスポート)、指定されたモジュール(Module1の)

  • モジュールは、均一なラベリング規則に従うべきです
  • モジュールが故障中に導入すると、モジュールに導入場合、関連する依存性を含む、定義済みグローバル関数、他のモジュールによって導入されたラベル、露出されたAPIの依存モジュールの、すなわち、その実行結果を、必要とする、それらの依存関係が順次ロードされ、機能が要求すべきです例外レポート
  • 変数のエクスポートを介して外部の世界に身をさらすことながら、自分自身を定義するためのモジュール、輸出のみ、このオブジェクトのためのAPIのプロパティを公開されたオブジェクトにすることができます

各ファイルは、モジュールで、独自のスコープを持っています。各内部モジュールは、モジュール変数は、輸出属性は外部インタフェースであり、現在のモジュールがオブジェクトで表します。module.exportsはプロパティは、実際には、module.exportsは変数を読み込み、現在のモジュールのインターフェイスの外部出力、モジュールをロードするための他のファイルを表します。

モジュールのコマンド・ファイルをロードするために、ユーザが必要になります。

3. AMD

AMD(非同期モジュール定義)は、「非同期モジュール定義」を意味します。これは、非同期でその背後にある文の実行には影響を与えないモジュールのロードモジュールをロードします。この文は、すべての依存モジュールは、コールバック関数で定義されている、ロード完了後まで待って、コールバック関数が実行されます。

AMDはまた、ロード・モジュールを使用して文を必要としますが、2つのパラメータを必要とCommonJSとは異なり:

require([module],callback)

ローディング後、第2引数コールバック、コールバック関数、最初のパラメータ[モジュール]は、ロードされるモジュールのメンバーである配列です。

AMDはLayuiでJavaScript仕様を使用しています。

layui.use(['laydate', 'layer', 'table', 'upload', 'slider'], function(){

})

AMDはRequireJS出力され、JSファイルを非同期的にロードすることができ、フロントに依存し、非同期定義されたフレームワークです。

4. CMD

CMD(共通モジュール定義)共通モジュール定義、およびロード・モジュールの実行要求を提供するモジュールの定義。書かれた形式仕様は、基本モジュールとの相互作用の基本的なルールを定義しました。

CMDが前面に依存しない、jQueryのプラグインは、プラグインを必要とする任意の場所でそれをプラグイン、すなわち、同期の概念である、返す使うために使用するもので、近く応じて、必要によってロードされます。

//CMD
define(function(require, exports, module) {   
   let a = require('./a'); 
   a.doSomething();
   ···
   let b = require('./b'); // 依赖可以就近书写   
   b.doSomething();
   ... 
})

// AMD 默认推荐的是
define(['./a', './b'], function(a, b) { 
  // 依赖必须一开始就写好    
  a.doSomething()   
  ...
  b.doSomething()   
  ...
}) 

5. ES6

サーバー用CommonJSは、AMDは、ブラウザのために、言語標準のレベルにES6は、機能モジュールを実現し、非常に簡単達成し、CommonJS AMDの仕様を置き換えることができ、一般的なブラウザとサーバモジュールソリューションとなります。静的のES6設計モジュールは、建物をしようとすると、モジュールの依存関係は、入力と出力の変数と同様に、測定することができます。CommonJSとAMDのモジュールは、これらのものは、実行時にのみ決定することができます。

ES6モジュールはオブジェクトではなく、コードを明示的にインポートコマンド入力を介してエクスポート・コマンド出力で指定されています。

import { stat, exists, readFile} from 'fs';

上記のコードモジュールの本質は、三つの方法からFSにロードされ、他の方法がロードされていません。この負荷は、ロードCommonJSモジュールよりも、コンパイル時に、より効率的なES6モジュールのロードを行うことができ、または静的負荷「コンパイル時のロード」と呼ばれています。

参考記事:

https://wangdoc.com/javascript/basic/history.html

http://es6.ruanyifeng.com/#docs/intro

おすすめ

転載: www.cnblogs.com/wenha/p/12079168.html