亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

第一章 JavaScript簡介(一)

系統 2164 0
JavaScript簡介

什么是 JavaScript?
JavaScript 被設計用來向 HTML 頁面添加交互行為。
JavaScript 是一種腳本語言(腳本語言是一種輕量級的編程語言)。
JavaScript 由數行可執行計算機代碼組成。
JavaScript 通常被直接嵌入 HTML 頁面。
JavaScript 是一種解釋性語言(就是說,代碼執行不進行預編譯)。

Java 和 JavaScript 是相同的嗎?
不同!
在概念和設計方面,Java 和 JavaScript 是兩種完全不同的語言。
Java(由太陽微系統公司開發)很強大,同時也是更復雜的編程語言,就像同級別的 C 和 C++。

JavaScript 能做什么?
1、JavaScript 為 HTML 設計師提供了一種編程工具
HTML 創作者往往都不是程序員,但是 JavaScript 卻是一種只擁有極其簡單的語法的腳本語言!幾乎每個人都有能力將短小的代碼片斷放入他們的 HTML 頁面當中。
2、JavaScript 可以將動態的文本放入 HTML 頁面
類似于這樣的一段 JavaScript 聲明可以將一段可變的文本放入 HTML 頁面:document.write("<h1>" + name + "</h1>")
3、JavaScript 可以對事件作出響應
可以將 JavaScript 設置為當某事件發生時才會被執行,例如頁面載入完成或者當用戶點擊某個 HTML 元素時。
4、JavaScript 可以讀寫 HTML 元素
JavaScript 可以讀取及改變 HTML 元素的內容。
5、JavaScript 可被用來驗證數據
在數據被提交到服務器之前,JavaScript 可被用來驗證這些數據。
6、JavaScript 可被用來檢測訪問者的瀏覽器
JavaScript 可被用來檢測訪問者的瀏覽器,并根據所檢測到的瀏覽器,為這個瀏覽器載入相應的頁面。
7、JavaScript 可被用來創建 cookies
JavaScript 可被用來存儲和取回位于訪問者的計算機中的信息。

JavaScript 的歷史

Nombas 和 ScriptEase
大概在 1992 年,一家稱作 Nombas 的公司開發了一種叫做 C 減減(C-minus-minus,簡稱 Cmm)的嵌入式腳本語言。Cmm 背后的理念很簡單:一個足夠強大可以替代宏操作(macro)的腳本語言,同時保持與 C (和 C ++)足夠的相似性,以便開發人員能很快學會。這個腳本語言捆綁在一個叫做 CEnvi 的共享軟件中,它首次向開發人員展示了這種語言的威力。
Nombas 最終把 Cmm 的名字改成了 ScriptEase,原因是后面的部分(mm)聽起來過于消極,同時字母 C “令人害怕”。
現在 ScriptEase 已經成為了 Nombas 產品背后的主要驅動力。

Netscape 發明了 JavaScript
當 Netscape Navigator 嶄露頭角時,Nombas 開發了一個可以嵌入網頁中的 CEnvi 的版本。這些早期的試驗被成為 Espresso Page(濃咖啡般的頁面),它們代表了第一個在萬維網上使用的客戶端語言。而 Nombas 絲毫沒有料到它的理念將會成為萬維網的一塊重要基石。
當網上沖浪越來越流行時,對于開發客戶端腳本的需求也逐漸增大。此時,大部分因特網用戶還僅僅通過 28.8 kbit/s 的調制解調器連接到網絡,即便這時網頁已經不斷地變得更大和更復雜。而更加加劇用戶痛苦的是,僅僅為了簡單的表單有效性驗證,就要與服務器進行多次地往返交互。設想一下,用戶填完一個表單,點擊提交按鈕,等待了 30 秒的處理后,看到的卻是一條告訴你忘記填寫一個必要的字段。
那時正處于技術革新最前沿的 Netscape,開始認真考慮開發一種客戶端腳本語言來解決簡單的處理問題。
當時工作于 Netscape 的 Brendan Eich,開始著手為即將在 1995 年發行的 Netscape Navigator 2.0 開發一個稱之為 LiveScript 的腳本語言,當時的目的是在瀏覽器和服務器(本來要叫它 LiveWire)端使用它。Netscape 與 Sun 及時完成 LiveScript 實現。
就在 Netscape Navigator 2.0 即將正式發布前,Netscape 將其更名為 JavaScript,目的是為了利用 Java 這個因特網時髦詞匯。Netscape 的賭注最終得到回報,JavaScript 從此變成了因特網的必備組件。

三足鼎立
因為 JavaScript 1.0 如此成功,Netscape 在 Netscape Navigator 3.0 中發布了 1.1 版。恰巧那個時候,微軟決定進軍瀏覽器,發布了 IE 3.0 并搭載了一個 JavaScript 的克隆版,叫做 JScript(這樣命名是為了避免與 Netscape 潛在的許可糾紛)。微軟步入 Web 瀏覽器領域的這重要一步雖然令其聲名狼藉,但也成為 JavaScript 語言發展過程中的重要一步。
在微軟進入后,有 3 種不同的 JavaScript 版本同時存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。與 C 和其他編程語言不同的是,JavaScript 并沒有一個標準來統一其語法或特性,而這 3 中不同的版本恰恰突出了這個問題。隨著業界擔心的增加,這個語言的標準化顯然已經勢在必行。

標準化
1997 年,JavaScript 1.1 作為一個草案提交給歐洲計算機制造商協會(ECMA)。第 39 技術委員會(TC39)被委派來“標準化一個通用、跨平臺、中立于廠商的腳本語言的語法和語義”(http://www.ecma-international.org/memento/TC39.htm)。由來自 Netscape、Sun、微軟、Borland 和其他一些對腳本編程感興趣的公司的程序員組成的 TC39 錘煉出了 ECMA-262,該標準定義了名為 ECMAScript 的全新腳本語言。
在接下來的幾年里,國際標準化組織及國際電工委員會(ISO/IEC)也采納 ECMAScript 作為標準(ISO/IEC-16262)。從此,Web 瀏覽器就開始努力(雖然有著不同的程度的成功和失敗)將 ECMAScript 作為 JavaScript 實現的基礎。

JavaScript 的核心
ECMAScript 描述了該語言的語法和基本對象;
DOM 描述了處理網頁內容的方法和接口;
BOM 描述了與瀏覽器進行交互的方法和接口。

ECMAScript、DOM 和 BOM
盡管 ECMAScript 是一個重要的標準,但它并不是 JavaScript 唯一的部分,當然,也不是唯一被標準化的部分。實際上,一個完整的 JavaScript 實現是由以下 3 個不同部分組成的:
核心(ECMAScript)
文檔對象模型(DOM)
瀏覽器對象模型(BOM)

第一章 JavaScript簡介(一)

ECMAScript
ECMAScript 并不與任何具體瀏覽器相綁定,實際上,它也沒有提到用于任何用戶輸入輸出的方法(這點與 C 這類語言不同,它需要依賴外部的庫來完成這類任務)。那么什么才是 ECMAScript 呢?ECMA-262 標準(第 2 段)的描述如下:
“ECMAScript 可以為不同種類的宿主環境提供核心的腳本編程能力,因此核心的腳本語言是與任何特定的宿主環境分開進行規定的... ...”
Web 瀏覽器對于 ECMAScript 來說是一個宿主環境,但它并不是唯一的宿主環境。事實上,還有不計其數的其他各種環境(例如 Nombas 的 ScriptEase,以及 Macromedia 同時用在 Flash 和 Director MX 中的 ActionScript)可以容納 ECMAScript 實現。那么 ECMAScript 在瀏覽器之外規定了些什么呢?
簡單地說,ECMAScript 描述了以下內容:
語法
類型
語句
關鍵字
保留字
運算符
對象
ECMAScript 僅僅是一個描述,定義了腳本語言的所有屬性、方法和對象。其他語言可以實現 ECMAScript 來作為功能的基準,JavaScript 就是這樣:



每個瀏覽器都有它自己的 ECMAScript 接口的實現,然后這個實現又被擴展,包含了 DOM 和 BOM(在以下幾節中再探討)。當然還有其他實現并擴展了 ECMAScript 的語言,例如 Windows 腳本宿主(Windows Scripting Host, WSH)、Macromedia 在 Flash 和 Director MX 中的 ActionScript,以及 Nombas ScriptEase。
1. ECMAScript 的版本
ECMAScript 分成幾個不同的版本,它是在一個叫做 ECMA-262 的標準中定義的。和其他標準一樣,ECMA-262 會被編輯和更新。當有了主要更新時,就會發布一個標準的新版。最新 ECMA-262 的版本是第三版,于 1999 年 12 月發布。
ECMA-262 的第一版在本質上與 Netscape 的 JavaScript 1.1 是一樣,只是把所有與瀏覽器相關的代碼刪除了,此外還有一些小的調整。首先,ECMA-262 要求對 Unicode 標準的支持(以便支持多語言)。第二,它要求對象是平臺無關的(Netscape 的 JavaScript 1.1 事實上有不同的對象實現,例如 Date 對象,是依賴于平臺)。這是 JavaScript 1.1 和 1.2 為什么不符合 ECMA-262 規范第一版的主要原因。
ECMA-262 的第二版大部分更新本質上是編輯性的。這次標準的更新是為了與 ISO/IEC-16262 的嚴格一致,也并沒有特別添加、更改和刪除內容。ECMAScript 一般不會遵守第二版。
ECMA-262 第三版是該標準第一次真正的更新。它提供了對字符串處理、錯誤定義和數值輸出的更新。同時,它還增加了正則表達式、新的控制語句、try...catch 異常處理的支持,以及一些為使標準國際化而做的小改動。一般來說,它標志著 ECMAScript 成為一種真正的編程語言。
2. 何謂 ECMAScript 符合性
在 ECMA-262 中,ECMAScript 符合性(conformance)有明確的定義。一個腳本語言必須滿足以下四項基本原則:
符合的實現必須按照 ECMA-262 中所描述的支持所有的“類型、值、對象、屬性、函數和程序語言及語義”(ECMA-262,第一頁)
符合的實現必須支持 Unicode 字符標準(UCS)
符合的實現可以增加沒有在 ECMA-262 中指定的“額外類型、值、對象、屬性和函數”。ECMA-262 將這些增加描述為規范中未給定的新對象或對象的新屬性
符合的實現可以支持沒有在 ECMA-262 中定義的“程序和正則表達式語法”(意思是可以替換或者擴展內建的正則表達式支持)
所有 ECMAScript 實現必須符合以上標準。
3. Web 瀏覽器中的 ECMAScript 支持
含有 JavaScript 1.1 的 Netscape Navigator 3.0 在 1996 年發布。然后,JavaScript 1.1 規范被作為一個新標準的草案被提交給 EMCA。有了 JavaScript 轟動性的流行,Netscape 十分高興地開始開發 1.2 版。但有一個問題,ECMA 并未接受 Netscape 的草案。在 Netscape Navigator 3.0 發布后不久,微軟就發布了 IE 3.0。該版本的 IE 含有 JScript 1.0(微軟自己的 JavaScript 實現的名稱),原本計劃可以與 JavaScript 1.1 相提并論。然后,由于文檔不全以及一些不當的重復特性,JScript 1.0 遠遠沒有達到 JavaScript 1.1 的水平。
在 ECMA-262 第一版定稿之前,發布含有 JavaScript 1.2 的 Netscape Navigator 4.0 是在 1997 年,在那年晚些時候,ECMA-262 標準被接受并標準化。因此,JavaScript 1.2 并不和 ECMAScript 的第一版兼容,雖然 ECMAScript 應該基于 JavaScript 1.1。
JScript 的下一步是 IE 4.0 中加入的 JScript 3.0(2.0 版是隨 IIS 3.0 一起發布的,但并未包含在瀏覽器中)。微軟大力宣傳 JScript 3.0 是世界上第一個真正符合 ECMA 標準的腳本語言。而那時,ECMA-262 還沒有最終定稿,所以 JScript 3.0 也遭受了和 JavaScript 1.2 同樣的命運 - 它還是沒能符合最終的 ECMAScript 標準。
Netscape 選擇在 Netscape Navigator 4.06 中升級它的 JavaScript 實現。JavaScript 1.3 使 Netscape 終于完全符合了 ECMAScript 第一版。Netscape 加入了對 Unicode 標準的支持,并讓所有的對象保留了在 JavaScript 1.2 中引入的新特性的同時實現了平臺獨立。
當 Netscape 將它的源代碼作為 Mozilla 項目公布于眾時,本來計劃 JavaScript 1.4 將會嵌入到 Netscape Navigator 5.0 中。然而,一個冒進的決定 - 要完全從頭重新設計 Netscape 的代碼,破壞了這個工作。JavaScript 1.4 僅僅作為一個 Netscape Enterprise Server 的服務器端腳本語言發布,以后也沒有被放入瀏覽器中。
如今,所有主流的 Web 瀏覽器都遵守 ECMA-262 第三版。
下面的表格列出了大部分流行的 Web 瀏覽器中的 ECMAScript 支持:

第一章 JavaScript簡介(一)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本一区二区三区精品 | 97超精品视频在线观看 | 欧美毛片在线播放观看 | 玖玖色在线| 亚洲免费资源 | 一级免费大片 | 四虎影视1515hh四虎免费 | 涩涩免费播放观看在线视频 | 欧美性生交xxxxx久久久 | 亚洲国产人久久久成人精品网站 | 一级片短视频 | 亚洲一区二区在线视频 | 欧美理论在线观看 | 午夜三级影院 | 伊人在线视频 | 青草香蕉精品视频在线观看 | 久久久精 | 香蕉成人啪国产精品视频综合网 | 九九热在线精品 | 国产亚洲精品精品国产亚洲综合 | 日本一区二区三区高清在线观看 | 九九精品免费观看在线 | 亚洲欧美国产高清va在线播放 | 色综合天天综合网国产人 | 四虎国产成人永久精品免费 | 麻豆成人久久精品二区三 | 国产成人福利夜色影视 | 88国产精品视频一区二区三区 | 亚洲天堂久久精品 | 一级毛片免费毛片一级毛片免费 | 中国美女日b | 久久机热这里只有精品无需 | 欧美一区2区三区3区公司 | 国产成人久久精品区一区二区 | 奇米影视狠狠 | 欧美成人精品 | 狠狠干夜夜 | 爱爱爱免费视频 | 奇米激情 | 国产午夜永久福利视频在线观看 | 国内精品视频成人一区二区 |