name: zlevai date: 2020-07-20 title: JavaScriptの基本コンセプト
""失敗から学びました"と言って、2カ月間赤本を噛むつもりです。
"町の赤本!!!"
"
JavaScript基本概念
"「javascriptは1995年に「現在のサーバー言語が担っている検証処理の一部を処理することを主な目的」として誕生しました。
現在では、「単なるフォーム検証」ではなく、「ブラウザウィンドウとそのコンテンツとの相互作用のほとんどすべての側面を持つ」操作となっています。
"
重要なのは、JavaScriptの性質、歴史、限界を把握することです。
JavaScript
- "1995年2月、NetscapeのBrandon EdgeがliveScriptを開発し、NetscapeとSunは開発提携を結びました。 Netscape navigator2の正式リリース前、NetscapeはJavaのメディアによる宣伝に乗るため、一時的にliveScriptをJavaScriptと改名しました。liveScriptからJavaScriptへ。
- 「1996年8月のマイクロソフトの参入は、JavaScript開発における大きな前進でした。
- "1997年、JavaScript 1.1をベースにした提案がECMA(欧州コンピュータ工業会)に提出され、数ヶ月の苦労の末、ECMA-262が完成し、ECMAScriptと呼ばれる新しいスクリプト言語の標準が定義されました。
- 「1998年に ISO/IEC 組織も ECMAScript を標準として採用し、それ以来、ブラウザの開発者は JavaScript の実装の基礎として ECMAScript を使うことに専念しています。
JavaScript
"完成したJavaScriptは、以下の3つの部分から構成されます:
"
- 「コア ECMAScript: コア言語機能を提供します。
- 「Document Object Model (DOM) :ウェブコンテンツにアクセスし、操作するための手段とインターフェースを提供します。
- 「ブラウザ・オブジェクト・モデル(BOM):ブラウザと対話するためのメソッドとインターフェースを提供します。
ECMAScript
"ECMAScript にはウェブブラウザとの依存関係はありません;
一般的なウェブブラウザは、ECMAScript 実装のための可能なホスト環境のひとつにすぎません。ECMAScript は基本的な実装を提供するだけでなく、言語と環境が互いにインターフェイスして相互作用できるように、言語の拡張も提供します。
その他のホスト環境(ノード、Adobe Flashなど
"ECMAScriptは以下のコンポーネントを規定しています。
- JavaScriptの配列语法javascriptの配列"
- JavaScriptの配列类型javascriptの配列"
- JavaScriptの配列语句JavaScriptの配列
- JavaScriptの配列关键字javascriptの配列"
- JavaScriptの配列保留字javascriptの配列"
- JavaScriptの配列操作符javascriptの配列"
- JavaScriptの配列对象javascriptの配列"
"ECMAScriptバージョン"
"
- ECMAScript2015、第6バージョン、略してES2015。
- ECMAScript2016、第7バージョン、略してES2016。
- ECMAScript2017、第8バージョン、略してES2017。
- ECMAScript2018、第9バージョン、略してES2018。
ドキュメントオブジェクトモデル DOM
"は、XML用のアプリケーションプログラミングインタフェースですが、HTML用に拡張されています。
DOMはページ全体を複数レベルのノード構造にマッピングします。
HTMLまたはXMLページの各コンポーネントは何らかのタイプのノードであり、これらのノードにはさまざまなタイプのデータが含まれています。
開発者は DOM API を使用して、ノードの削除、追加、置換、変更を簡単に行うことができます。
"
なぜDOMを使うのですか?
- マイクロソフトとネットスケープは、別々の形式のDHTMLをサポートする根拠をめぐって意見の相違があり、どのブラウザでも動作する単一のHTMLを書ける時代は終わりました。
- ウェブのクロスプラットフォーム性を維持するためには、少し特別な標準化作業が必要でした。この時点で、ウェブ通信の標準化を担当するW3Cワールド・ワイド・ウェブ・コンソーシアムは、DOMの計画を開始しました。
DOM
"「DOM1」は 1998年10月にW3Cの推奨標準となりました:
- DOM Core : ドキュメントのあらゆる部分へのアクセスや操作を簡素化するために、XMLベースのドキュメント構造をマッピングする方法を規定しています。
- DOM HTML: HTML 用のオブジェクトとメソッドを追加して DOM コアを拡張します。
「DOM2
マウスおよびユーザー・インターフェース・イベントの拡張。スコープ。トラバーサル、オブジェクトインターフェイスによる CSS のサポートを追加。
- "DOMビュー": 異なるドキュメントビューを追跡するためのインターフェイスを定義します。
- 「DOM Events": イベントとイベント処理インターフェースを定義します。
- "DOM Styles: CSS に基づいて要素にスタイルを適用するためのインターフェイスを定義します。
- "DOM traversal and scoping": ドキュメントツリーの走査と操作のためのインターフェースを定義します。
「DOM3
ドキュメントのロードと保存の統一方法と、ドキュメントの新しい検証方法を導入。
"
ブラウザオブジェクトモデルBOM
"BOMは、ブラウザが表示するページ以外の部分を制御することができる」を使用します。
"
- 新しいタブを開く
- ブラウザウィンドウの移動、ズーム、クローズ機能
- ブラウザの詳細情報を提供する"navigator" オブジェクト。
- ブラウザが読み込んだページに関する詳細情報を提供する "location" オブジェクト。
- ユーザーのモニターの解像度に関する詳細情報を提供する "screen" オブジェクト。
- クッキーのサポート
- XMLHttpRequsetやIEなどのActiveXObjectオブジェクト
JavaScript制限事項
""
- JavaScriptはクライアントサイドスクリプトなので、JavaScriptは「パーサーの下で実行」されなければなりません。通常、このパーサーはブラウザによって提供されるため、JavaScriptは通常、ウェブページやブラウザの操作に関連するいくつかの機能を実行するためにのみブラウザで使用されます。
- JavaScriptはWebページ上で動的な効果を実現することができますが、JavaScriptには「グラフィックを処理する機能はありません」。イメージを扱いたい場合は、サードパーティのコントロールを使う必要があります。
- JavaScriptは「独自のネットワーク技術を含んでいない」「データベースからデータを読み取ることができない」「他のファイルを操作することもできない」のです。JavaScriptにこれらの機能を実行させたい場合は、他のコントロールやコンポーネントを使用する必要があります。
- "セキュリティ上の理由"から、ほとんどのブラウザはJavaScriptがドメインを越えて動作することを許可していません。
まとめ
"JavaScriptは「ウェブページと対話する」ために設計されたスクリプト言語で、以下の3つの部分に分かれています:
"
- コア ECMAScript: コア言語機能の提供
- Document Object Model DOM:ウェブページのコンテンツにアクセスし、操作するための手段とインターフェースを提供します。
- ブラウザオブジェクトモデル BOM: ブラウザと対話するためのメソッドとインターフェースを提供します。