從制造到創(chuàng)造
          軟件工程師成長之路
          posts - 292,  comments - 96,  trackbacks - 0

          第1章 JavaScript是什么

          1.1 歷史簡述
          1997年,JavaScript 1.1 作為一個(gè)草案提交給歐洲計(jì)算機(jī)制造商協(xié)會(ECMA)。第39技術(shù)委員會(TC39)被委派來“標(biāo)準(zhǔn)化一個(gè)通用、跨平臺、中立于廠商的腳本語言的語法和語義”(http://www.ecma-international.org/memento/TC39.htm)。TC39錘煉出了ECMA-262,該標(biāo)準(zhǔn)定義了叫做ECMAScript的全新腳本語言。在接下來的幾年里,國際標(biāo)準(zhǔn)化組織及國際電工委員會(ISO/IEC)也采納ECMAScript作為標(biāo)準(zhǔn)(ISO/IEC-16262)。

          1.2 JavaScript實(shí)現(xiàn)
          JavaScript實(shí)現(xiàn)是由以下3個(gè)部分組成的:
          -核心(ECMAScript)
          -文檔對象模型(DOM)
          -瀏覽器對象模型(BOM)

          1.2.1 ECMAScript
           ECMAScript描述了以下內(nèi)容:
           語法;
           類型;
           語句;
           關(guān)鍵字;
           保留字;
           運(yùn)算符;
           對象。

          ECMAScript僅僅是一個(gè)描述,定義了腳本語言的所有屬性、方法和對象。其他的語言可以實(shí)現(xiàn)ECMAScript來作為功能的標(biāo)準(zhǔn),JavaScript就是這樣。

          1.2.1.1  ECMAScript的版本
          最新的ECMA-262的版本是第三版,于1999年12月發(fā)布。
          第一版:刪除來與瀏覽器相關(guān)的代碼的JavaScript1.1。
          第二版:大部分更新本質(zhì)上是編輯性的,未特別添加、更改和刪除內(nèi)容。
          第三版:提供了對字符串處理、錯(cuò)誤定義和數(shù)組輸出的更新。同時(shí),它還增加了正則表達(dá)式、新的控制語句、try...catch異常處理的支持,以及一些為使標(biāo)準(zhǔn)國際化而做的小改動(dòng)。標(biāo)志著ECMAScript成為一種真正的編程語言。
          1.2.1.2  何謂ECMAScript符合性
          一個(gè)腳本語言必需滿足以下四項(xiàng)基本原則:
          符合的實(shí)現(xiàn)必須按照ECMA-262中所描述的支持所有的“類型、值、對象、屬性、函數(shù)和程序語法及語義;
          符合的實(shí)現(xiàn)必須支持Unicode字符標(biāo)準(zhǔn)(UCS);
          符合的實(shí)現(xiàn)可以增加沒有在ECMA-262中指定的“額外的類型、值、對象、屬性和函數(shù)”。
          符合的實(shí)現(xiàn)可以支持沒有在ECMA-262中定義的“程序和正則表達(dá)式語法”即可以替換或者擴(kuò)展內(nèi)建的正則表達(dá)式支持。

          1.2.1.3 Web瀏覽器中的ECMAScript支持
          以下版本支持ECMA-262第三版:Netscape 6.0+(Mozilla 0.6.0+)、Internet Explorer 5.5+、Opera 7.2+、Safari 1.0+/Konqueror~2.0+

          1.2.2 DOM
          DOM(文檔對象模型)是HTML和XML的應(yīng)用程序接口(API)。DOM將整個(gè)頁面規(guī)劃成由節(jié)點(diǎn)層級構(gòu)成的文檔。HTML或XML頁面的每個(gè)部分都是一個(gè)節(jié)點(diǎn)的衍生物。 

          請考慮下面的HTML頁面:

          <html>
              
          <head>
                  
          <title>Sample Page</title>
              
          </head>
              
          <body>
                  
          <p>Hello World!</p>
              
          </body>
          </html>

           

          這段代碼可以用DOM繪制成一個(gè)節(jié)點(diǎn)層次圖。



          DOM通過創(chuàng)建樹來表示文檔,從而使開發(fā)者對文檔的內(nèi)容和結(jié)構(gòu)具有空前的控制力。用DOM API可以輕松地刪除、添加和替換節(jié)點(diǎn)。

          1.2.2.1 為什么DOM必不可少
          保持Web的跨平臺特性,Web通信標(biāo)準(zhǔn)的團(tuán)體W3C(World Wide Web Consortium)開始制定DOM。

          1.2.2.2 DOM的各個(gè)Level
          DOM Level 1 是W3C于1998年10月提出的。它由兩個(gè)模塊構(gòu)成,即DOM Core和DOM HTML。前者提供了基于 XML 的文檔的結(jié)構(gòu)圖,以方便訪問和操作文檔的任意部分;后者添加了一些 HTML 專用的對象和方法,從而擴(kuò)展了DOM Core。

          DOM Level 1 只有一個(gè)目標(biāo),即規(guī)劃文檔的結(jié)構(gòu)。
          DOM Level 2 引入了幾種 DOM 新模塊,用于處理新的接口類型:
          DOM 視圖--描述跟蹤文檔的各種視圖(即 CSS 樣式化之前和 CSS 樣式化之后的文檔)的接口;
          DOM 事件--描述事件的接口;
          DOM 樣式--描述處理基于 CSS 樣式的接口;
          DOM 遍歷和范圍--描述遍歷和操作文檔樹的接口。
          DOM Level 3 引入了以統(tǒng)一的方式載入和保存文檔的方法(包含在新模塊 DOM Load and Save 中)以及驗(yàn)證文檔(DOM Validation)的方法,從而進(jìn)一步擴(kuò)展了 DOM 。在Level 3 中,DOM Core 被擴(kuò)展為支持所有的 XML 1.0 特性,包括 XML Infoset、XPath 和 XML Base。

          1.2.2.3 其他 DOM
          可縮放矢量圖形(SVG)1.0;
          數(shù)學(xué)標(biāo)記語言(MathML)1.0;
          同步多媒體集成語言(SMIL)。
          1.2.2.4 Web 瀏覽器中的 DOM 支持


          1.2.3 BOM(瀏覽器對象模型)

          BOM 主要處理瀏覽器窗口和框架,擴(kuò)展部分包括:
          彈出新的瀏覽器窗口;
          移動(dòng)、關(guān)閉瀏覽器窗口以及調(diào)整窗口大?。?br /> 提供 Web 瀏覽器詳細(xì)信息的導(dǎo)航對象;
          提供裝載到瀏覽器中頁面的詳細(xì)信息的定位對象;
          提供用戶屏幕分辯率詳細(xì)信息的屏幕對象;
          對 Cookie 的支持;
          IE 擴(kuò)展了 BOM,加入了 ActiveXObject 類,可以通過 JavaScript 實(shí)例化 ActiveX 對象。

          1.3 小結(jié)
          本章介紹了 JavaScript 這種客戶端 Web 瀏覽器腳本語言,了解了構(gòu)成 JavaScript 完整實(shí)現(xiàn)的各個(gè)部分:
          JavaScript 的核心 ECMAScript 描述了該語言的語法和基本對象;
          DOM 描述了處理頁面內(nèi)容的方法和接口;
          BOM 描述了與瀏覽器進(jìn)行交互的方法和接口。

          posted on 2007-10-04 21:35 CoderDream 閱讀(521) 評論(0)  編輯  收藏 所屬分類: JS 高級程序設(shè)計(jì)

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          <2007年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(9)

          我參與的團(tuán)隊(duì)

          隨筆分類(245)

          隨筆檔案(239)

          文章分類(3)

          文章檔案(3)

          收藏夾(576)

          友情鏈接

          搜索

          •  

          積分與排名

          • 積分 - 459380
          • 排名 - 114

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 金昌市| 嘉祥县| 衡水市| 永善县| 涿鹿县| 温州市| 积石山| 盘山县| 邻水| 大渡口区| 沾益县| 青河县| 太保市| 平利县| 深水埗区| 洛南县| 丹巴县| 嘉禾县| 聂拉木县| 石阡县| 攀枝花市| 沙雅县| 碌曲县| 当涂县| 晴隆县| 永和县| 遵义县| 康保县| 新兴县| 富蕴县| 九江市| 怀安县| 宜兴市| 永州市| 姚安县| 晋州市| 东丰县| 汝南县| 江津市| 湖北省| 新巴尔虎右旗|