前言:
爲何會想到把《JavaScript 高級程序設計(第 3 版)》總結記錄呢,以前寫過一篇博客,研究的輪播效果,後來又去看了《JavaScript 高級程序設計(第3版)》,忽然想着邊看邊記錄,就像邊看邊寫讀後感。這本書從介紹表達式和申明變量開始,平滑的過渡到了閉包、面向對象開發等高級主題。與那些把大量篇幅花在講解背景知識上的書,以及那些讓人感受好像要使用JavaScript 開發導彈制導系統的書,這本書讓人感受細緻周到、親切天然,這是一本寫給「普通人」的書。它可以讓你編寫出引覺得榮的代碼。構建出使人叫絕的網站。JavaScript 是一種很是鬆散的面嚮對象語言,也是 Web 開發中極受歡迎的一門語言。它是一種全新的動態語言,植根於全球數億網民都在使用的 Web 瀏覽器之中,致力於加強網站和 Web 應用程序的交互性。html
本書目錄:
1:JavaScript 簡介
2:在HTML中使用 JavaScript
3:基本概念
4:變量、做用域和內存問題
5:引用類型
6:面向對象的程序設計
7:函數表達式
8:BOM
9:客戶端檢測
10:DOM
11:DOM 擴展
12:DOM2 和 DOM3
13:事件
14:表單腳本
15:使用 Canvas 繪圖
16:HTML5 腳本編程
17:錯誤處理與調試
18:JavaScript 與 XML
19:E4X
20:JSON
21:Ajax 與 Comet
22:高級技巧
23:離線應用與客戶端存儲
24:最佳實踐
25:新興的 API前端
好了,話很少說,開始個人第一章 Read。
本章主要內容:
JavaScript 是什麼、JavaScript 與 ECMAScript 的關係、JavaScript 的不一樣版本程序員
第一個問題:JavaScript 是什麼?
JavaScript 誕生於 1995 年。當時它的主要目的是處理之前有服務器端語言(如 Prel)負責的一些輸入驗證操做。在 JavaScript 問世以前,必須把表單數據發送到服務器端才能肯定用戶是否沒有填寫某個必填域,是否輸入了無效的值。Netscape Navigator 但願經過 JavaScript 來解決這個問題。現在 JavaScript 的用途早已再也不侷限簡單的數據驗證,而是具有了與瀏覽器窗口及其內容等幾乎全部方面交互的能力。如今的 JavaScript 已經成爲一門功能全面的編程語言,可以處理複雜的計算和交互,擁有了閉包、匿名(lamda,拉姆達)函數,甚至元編程等特性。編程
第二個問題:JavaScript與ECMAScript的關係?
1997年,以 JavaScrip 1.1 爲藍本的建議被提交給了歐洲計算機制造商協會(ECMA,European Computer Manufactures Association)。該協會指定 39 號技術委員會(TC39,Technical Committee #39)負責「標準化一種通用、跨平臺、供應商中立的腳本語言的語法和語義」(http://www.ecmainternational.org/memento/TC39.htm)。TC39 由來自Netscape、sun、微軟、Borland 及其餘關注腳本語言發展的公司的程序員組成,他們通過數月的努力完成了 ECMA-262 ——定義一種名爲 ECMAScript(發音爲「ek-ma-script」) 的新腳本語言的標準。瀏覽器
一個完整的 JavaScript 實現應該由如下三大類組成(如圖1-1):服務器
1:核心(ECMAScript)cookie
2:文檔對象模型(DOM)閉包
3:瀏覽器對象模型(BOM)框架
1.1 文檔對象模型(DOM,Document Object Mode)是針對 XML 但通過擴展用於 HTML 的應用程序編程接口(API,Application Programming Interface)。DOM 把整個頁面映射爲一個多層次節點結構。HTML 或 XML 頁面中的每一個組成部分都是某種類型的節點,這些節點又包含着不一樣類型的數據。下面舉一個簡單的例子:編程語言
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<p>hello World !</p>
</body>
</html>
在 DOM 中,這個頁面能夠經過下圖 1-2 所示的分層節點圖表示。
經過 DOM 建立的這個表示文檔的樹形圖,所以開發人員能夠很方便的刪除、添加、替換、修改任何節點。
1):爲何要使用 DOM?
答:對 Netscape 和微軟加以控制;
避免 Web 開發領域出現技術上兩強割據;
保持 Web 跨平臺的天性;
解決瀏覽器不兼容問題。
2):DOM 級別
DOM 1級(DOM Level 1)
兩個模塊:DOM 核心(DOM Core)和DOM HTML
DOM 2級
新增四個模塊:· DOM 視圖(DOM Views)
· DOM 事件(DOM Events)
· DOM 樣式(DOM Style)
· DOM 遍歷和範圍 (DOM Traversal and Range)
DOM 3級
新增驗證文檔方法:· DOM驗證(DOM Validation)
注:
1:DOM 並不僅是針對 JavaScript,不少其餘語言也實現了 DOM;
2:不存在 DOM 0 級標準,DOM 0 級只是 DOM 歷史座標中的一個參照點而已。具體來講指的是 Internet Explore 4.0和Netscape Navigator 4.0 最初支持的 DHTML。
3):其餘 DOM 標準
(1) SVG(Scalable Vector Graphic,可伸縮矢量圖)1.0;
(2) MathML(Mathenatical Markup Language,數學標記語言)1.0;
(3) SMIL(Synchronized Multimedia Integration Language,同步多媒體集成語言)。
這些語言都是基於 XML 的,還有一些語言也開發了本身的 DOM 實現,例如 Mozilla 的 XUL(XML User Interface Language,XML 用戶界面語言)。但只有上面列出的幾種語言是 W3C 的推薦標準。
4):Web瀏覽器對 DOM 的支持
1.2 瀏覽器對象模型(DOM)
Internet Explorer 3 和 Netscape Navigator 3 的共同特點就是支持能夠訪問和操做瀏覽器窗口的瀏覽器對象模型(BOM,Browser Object Model)。開發人員使用BOM能夠控制瀏覽器顯示的頁面之外的部分。
從根本上講,BOM 只處理瀏覽器窗口和框架,但人們習慣上也把全部針對瀏覽器的 JavaScript 擴展算做 BOM 的一部分。具體擴展以下:
(1):彈出新瀏覽器窗口的功能;
(2):移動、縮放和關閉瀏覽器窗口的功能;
(3):提供瀏覽器詳細信息的 navigator 對象;
(4):提供瀏覽器所加載頁面的詳細信息的 lacation 對象;
(5):提供用戶顯示器分辨率詳細信息的 screen 對象;
(6):對 cookies 的支持;
(7):像 XMLHttpRequest 和 IE 的 ActiveXObject 這樣的自定義對象。
1.3 JavaScript 版本
注:
大多數瀏覽器在說起對 JavaScript 的支持狀況時,通常都以 ECMAScript 兼容性和對 DOM 的支持狀況爲準。
1.4 小結
JavaScript 是一種專爲網頁交互而設計的腳本語言,由一下三個不一樣部分組成:
A:ECMAScript ,由ECMA - 262定義,提供核心語言功能;
B:文檔對象模型(DOM),提供訪問和操做網頁內容的方法和接口;
C:瀏覽器對象模型(BOM),提供與瀏覽器交互的方法和接口。
若是文中有錯誤,很是感謝您指出,但請不要刻薄詆譭。
文章我會盡可能添加一些實用的例子,方便理解閱讀。
本文屬於連載性隨時更新文章。
我的屬於中級程序媛,現於成都某公司任職Web前端開發,但願經過本身的學習而後鞏固提高個人技術,大神勿噴,謝謝 /haha