日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

第一章 JavaScript簡(jiǎn)介(一)

系統(tǒng) 2577 0
JavaScript簡(jiǎn)介

什么是 JavaScript?
JavaScript 被設(shè)計(jì)用來(lái)向 HTML 頁(yè)面添加交互行為。
JavaScript 是一種腳本語(yǔ)言(腳本語(yǔ)言是一種輕量級(jí)的編程語(yǔ)言)。
JavaScript 由數(shù)行可執(zhí)行計(jì)算機(jī)代碼組成。
JavaScript 通常被直接嵌入 HTML 頁(yè)面。
JavaScript 是一種解釋性語(yǔ)言(就是說(shuō),代碼執(zhí)行不進(jìn)行預(yù)編譯)。

Java 和 JavaScript 是相同的嗎?
不同!
在概念和設(shè)計(jì)方面,Java 和 JavaScript 是兩種完全不同的語(yǔ)言。
Java(由太陽(yáng)微系統(tǒng)公司開發(fā))很強(qiáng)大,同時(shí)也是更復(fù)雜的編程語(yǔ)言,就像同級(jí)別的 C 和 C++。

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

JavaScript 的歷史

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

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

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

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

JavaScript 的核心
ECMAScript 描述了該語(yǔ)言的語(yǔ)法和基本對(duì)象;
DOM 描述了處理網(wǎng)頁(yè)內(nèi)容的方法和接口;
BOM 描述了與瀏覽器進(jìn)行交互的方法和接口。

ECMAScript、DOM 和 BOM
盡管 ECMAScript 是一個(gè)重要的標(biāo)準(zhǔn),但它并不是 JavaScript 唯一的部分,當(dāng)然,也不是唯一被標(biāo)準(zhǔn)化的部分。實(shí)際上,一個(gè)完整的 JavaScript 實(shí)現(xiàn)是由以下 3 個(gè)不同部分組成的:
核心(ECMAScript)
文檔對(duì)象模型(DOM)
瀏覽器對(duì)象模型(BOM)

第一章 JavaScript簡(jiǎn)介(一)

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



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

第一章 JavaScript簡(jiǎn)介(一)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 拜泉县| 仪征市| 顺昌县| 年辖:市辖区| 宜兴市| 成武县| 庄浪县| 石台县| 凤冈县| 漠河县| 台山市| 都江堰市| 余江县| 西华县| 岢岚县| 万荣县| 旬阳县| 金坛市| 广安市| 扎囊县| 通化县| 临城县| 图们市| 会昌县| 绥化市| 潮安县| 肥乡县| 乌兰县| 绥中县| 张家港市| 仁怀市| 铜陵市| 淮北市| 安新县| 库伦旗| 桦川县| 奇台县| 名山县| 德庆县| 汝阳县| 寻甸|