學習和工作中經常會通過搜索引擎的引導進入到博客園中,技術大牛們的知識概括往往一針見血解決了困擾我很久的大大小小的問題。可是一直都是看別人寫的博客,自己一直沒動過手,直到看到一個博客說到,從簡到繁地記記讀書筆記或知識總結是促進技術進步的一個很好的方法,覺得非常在理,學習後的整理更能記得牢固,於是最近下 ...
學習和工作中經常會通過搜索引擎的引導進入到博客園中,技術大牛們的知識概括往往一針見血解決了困擾我很久的大大小小的問題。可是一直都是看別人寫的博客,自己一直沒動過手,直到看到一個博客說到,從簡到繁地記記讀書筆記或知識總結是促進技術進步的一個很好的方法,覺得非常在理,學習後的整理更能記得牢固,於是最近下定決心,開始我的博客園“生活”。
說了從簡到繁,作為一個前端小小小小白,我決定把經典的前端書籍的讀書筆記寫在這裡,說不定以後遺忘的時候返回來看到會有豁然開朗的感覺(偷笑)。
-
第一章——JavaScript簡史
以前的Web標準中,HTML和CSS通常占據著核心的地位,後來W3C批准了另一項技術,所有與標準相相容的Web瀏覽器都支持它,這就是DOM(文檔對象模型:Document Object Model)。通過DOM我們可以給文檔增加交互能力,就像利用CSS給文檔添加樣式一樣。
初期DOM是屬於試驗性質的,稱為“第0級DOM(DOM Level 0)”,未形成統一標準初期階段,第0級DOM常見用途是翻轉圖片和驗證表單數據,直到瀏覽器產品的更新,DOM Lv0遇到麻煩陷入困境。
而後誕生DHTML(動態HTML),背後含義是(1)利用HTML把網頁標記成元素;(2)利用CSS設置元素樣式和它們的顯示位置;(3)利用Javascript實時地操控頁面和改變樣式。但以上三點只是理論可行,受瀏覽器相容性的困擾,解決DOM問題時沒有統一的方法。使得當時的程式猿編寫DOM腳本時還要區分不同瀏覽器環境,直到1998年W3C推出了一個標準化DOM,稱為“第一級DOM”
直到今天幾乎所有瀏覽器都內置了對DOM的支持,還有HTML5 DOM帶來的眾多新特性,逐漸終於可以“編寫一次,隨處運行”了。
-
第二章——JavaScript語法
JS代碼必須通過HTML/XHTML文檔才能執行,執行可以有兩種方式:
1、將JS代碼放在<head>標簽中的<script>標簽之間;
2、把JS代碼另存在一個擴展名為.js的獨立文件中,通過HTML中放一個<script>標簽,並使用src屬性指向文件,例如<script src = "file.js"></scirpt>。
但最好的方法是把<script>標簽放在HTML文檔的最後,</body>標簽之前,即:
<body> body的內容...... <script src = "file.js"></scirpt> </body>
這樣能使瀏覽器更快地載入頁面(書的第5章詳細討論)。
每一次改變.js文件的內容,只需要在瀏覽器重新載入.html文件即可看到效果,這就是JS這種解釋型程式設計語言與Java、C++等編譯型語言需要編譯器不同的地方。JS直接由瀏覽器的JS解釋器讀入源代碼並執行。
JS語句在同一行中需要用分號隔開;註釋可以使用“//”或者“/* ..... */”進行多行註釋;變數聲明可以單獨,也可以一次性聲明多個,變數命名區分大小寫,建議採用駝峰命名法;JS中單引號或雙引號引住的字元串在JS這種弱類型語言中語義完全相同;數據類型含有字元串、數值、布爾值、數組(數組下標從0開始)、對象。
如果在某個函數中使用了var關鍵字,那個變數就被視為一個局部變數,它只存在於這個函數的上下文中;反之,如果沒有使用var,那個變數就將被視為一個全局變數,如果腳本里已經存在一個與之同名的全局變數,這個函數就會改變那個全局變數的值。
對象是自包含的數據集合,包含在對象里的數據可以通過兩種形式訪問——屬性、方法。(1)屬性是隸屬於某個特定對象的變數;(2)方法是只有某個特定對象才能調用的函數。所以對象就是由一些屬性和方法組合在一起而構成的一個數據實體。Math對象和Date對象等這些屬於JS的內建對象。此外,瀏覽器預定義的對象稱為宿主對象,例如Form、Image、Element等。document對象也是宿主對象,用來獲得網頁上任何一個元素的信息。