《JavaScript DOM編程藝術》讀後總結

来源:http://www.cnblogs.com/housong/archive/2016/04/28/5444733.html
-Advertisement-
Play Games

這是我讀的第一本關於JS的書,剛開始我為了選擇合適的學習JS的書,看了網上許多人的意見,基本上都是推薦先讀這本書。書的內容挺簡單的,確實很適合初學者看,閱讀的過程中不會產生什麼障礙。內容雖然簡單,但我覺得還是挺有收穫的,之前我主要是通過看視頻學習JS的,看了好些視頻,瞭解了好些概念,但對好多概念都是 ...


    這是我讀的第一本關於JS的書,剛開始我為了選擇合適的學習JS的書,看了網上許多人的意見,基本上都是推薦先讀這本書。書的內容挺簡單的,確實很適合初學者看,閱讀的過程中不會產生什麼障礙。內容雖然簡單,但我覺得還是挺有收穫的,之前我主要是通過看視頻學習JS的,看了好些視頻,瞭解了好些概念,但對好多概念都是似懂非懂的,認識的不是很真切。通過閱讀這本書,使我對前面瞭解的那些概念有了更清楚的認識,同時,書中還反覆強調了幾個重要的思想,我覺得這也是很有價值的,很具有指導意義。

    書中的第一章是介紹JS的簡史的,在這裡我看到了一個關於DOM的描述,DOM是一種API(應用編程介面),API就是一組已經得到有關各方共同認可的基本約定,相當於現實世界的莫爾斯碼和元素周期表等。通過這個描述,加深了我對DOM和API兩個概念的認識,這兩個概念我之前都見過,特別是DOM,但是都感覺描述不清楚這到底是什麼東西。現在想來,其實DOM和API就是用來認識和描述特定對象的一種方法或者說模型。

    第二章講的是JS的語法,相當於複習了一遍視頻的內容,不過也由之前沒見過的新東西,關於數組的內容說到關聯數組的概念,我知道了數組的下標可以不是數字,可以是字元串,使用關聯數組可以提高腳本的可讀性。還有就是關於對象這個概念,書中提到對象是一種非常重要的數據類型,它是自我包含的數據集合,包含在對象里的數據可以通過兩種形式訪問:屬性和方法。又對屬性和方法進行了說明,屬性是隸屬於某個特定對象的變數,方法是只有某個特定對象才能調用的函數。通過這些描述,我大概理解了對象、屬性和方法這三個概念。

    第三章介紹了節點的概念和四種DOM方法,我瞭解到JS中對象可以分為三種類型:用戶定義對象、內建對象和宿主對象。關於JS中3中重要的節點,元素節點、屬性節點和文本節點的內容使我基本弄清楚了這三種節點的關係,元素節點可能包含屬性節點和文本節點,屬性節點和文本節點是最小的節點,不可能有子節點了。

    第四章以一個案例為基礎進行了講解,介紹了一個簡單的帶有JS動態效果的網頁製作的過程,使用了childNodes,firstChild,lastChild屬性,並通過nodeValue屬性改變了文本內容,使我對這些屬性的應用有了個初步的印象,之前只知道概念,對於使用沒什麼實感。另外我還認識了一個操作符,“?”三元操作符,之前見過很多次,知道該怎麼用,但都不知道是什麼名字。

    第五章的內容比較重要,提出了三種重要的思想:預留退路;分離JavaScript;向後相容性。預留退路這個概念是第一次見到,之前沒見過,所謂的預留退路是指確保網頁在沒有JavaScript的情況下也能正常工作,我覺得這是很棒的思想,和分離JavaScript的思想比較像。對象檢測這個概念我之前也知道,但少見用到,書中很強調檢測的重要性,我也認為這個比較重要,但對於在何種情況下檢測到什麼地步沒什麼概念,書中也沒說很清楚。還瞭解了一個概念:偽協議“javascript:”。

    第六章是對實例講解的繼續,裡面有作者自己編寫的函數,用於添加需要window.onload的函數,我覺得現在對我來說沒什麼必要,也許以後遇到大型項目的時候會有用。介紹了DOM Core 和HTML-DOM的概念,特別是後者,我之前有見到過,但不知道這是屬於什麼用法,現在知道了,比如:前者的element.getAttribute("href")等於後者的element.href。

    第七章說document.write()方法和innerHTML屬性是老方法了,都有各自的問題,建議不要使用,之前我見過這兩種用法,我以為是標準的用法,現在才知道其實是老舊的方法。通過跟著案例練習,我對createElement()、appendChild()、createTextNode()、insertBefore()方法的使用有了更多的認識,之前只是僅僅知道概念而已。

    第八章提到了JS的一種用途,用於彌補不同瀏覽器的對一些標簽的預設呈現樣式不同所造成的不同體驗。

    第九章提到一個思想,之前見過這種方法,當時沒覺得有多好,只覺得這種想法很獨特,現在想想,其實這種方法是很不錯的,通過JS去刷新某個元素的class屬性,間接改變該元素的樣式信息。 

    第十章是利用JS製作動畫效果,視頻上用的是setInterval,沒有用setTimeout,瞭解了一下使用setTimeout的例子。

    第十一章是製作樂隊網頁的例子,關於創建CSS文件,把顏色、佈局、字體分開創建的思路挺好的,之前看的視頻都是把樣式寫在一個文件夾,分開寫雖然做的時候會麻煩一些,但以後維護的時候應該會帶來不少便利。

    第十二章是關於未來的展望的,現在看來,作者當時的預測還是比較正確的。

    這本書只是開了個頭,以後學習JS的路還十分長,書中的知識相對來說會比視頻來說會全一些,看書的同時動手練習也是很重要的,好些看著挺容易的東西,實際操作的時候才發覺沒有想象的那麼容易。

                                                                                                                                           2016-04-28 23:08:01

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 之前寫過關於微信支付那些坑的文章(《微信JSApi支付~集成到MVC環境後的最後一個坑(網上沒有這種解決方案)》,《微信JSApi支付~坑和如何填坑》),下麵說一下微信官方提供的"掃碼支付",一配置,一運行,生成了一個二維碼,手機一掃,出現了"獲取商戶訂單信息超時或商戶返回httpcode非200" ...
  • 裝飾者模式(Decorator):動態地給一個對象添加一些額外的職責,就增加功能來說,裝飾者模式比生成子類更為靈活。 1.定義介面,可以動態的給對象添加職責。 2.實現這個介面 3.裝飾類 4.具體實現的裝飾類 5.測試用例: 6.運行結果: ...
  • 依賴倒轉原則: A.高層模塊不應該依賴底層模塊,兩個都應該依賴抽象。 B.抽象不應該依賴細節,細節應該依賴抽象。 里氏代換原則: 子類型必須能夠替換掉他們的父類型。只有當子類可以替換掉父類,軟體單位的功能不受到影響時,父類才能真正被覆用,而子類也能過在父類的基礎上增加新的行為。只有子類型的可替換性才 ...
  • 開放-封閉原則,是說軟體實體(類,模塊,函數等)應該可以擴展,但是不可以修改的。換句話說就是,這個原則有兩大特征,對於擴展是開放的(Open for extension),另一個就是對於更改是封閉的(close for modification)。 但是,無論模塊多麼封閉都會存在一些無法對之封閉得到 ...
  • 在前面一篇博客中介紹了“命令模式”(Command Pattern),今天博客的主題是“適配器模式”(Adapter Pattern)。適配器模式用處還是比較多的,如果你對“適配器模式”理解呢,那麼自然而然的就會知道其使用場景。今天這篇博客我們就舉一個生活中的使用適配器模式的示例,然後將該示例使用代 ...
  • 單一職責原則(SRP):就一個類而言,應該僅有一個引起它變化的原因。 如果一個類承擔的職責過多,就等於把這些職責耦合在一起,一個職責的變化可能會小若或則抑制這個類完成其他職責的能力。這種耦合會當值脆弱的設計,當發生變化時,設計會發生意想不到的破壞。 軟體設計真正要做到許多內容,就是發現職責,並把那些 ...
  • 聲明: 一、nodejs是什麼 前段時間,偶然得到了一次跟幾個大牛學長學習的機會,他們正在做一個startup的項目,構建網站所使用的就是nodejs;對這個最近牛哄哄的東西,自己也只是略有耳聞,從何下手呢,打開百度,google一下。 首先,nodejs不是一種什麼編程語言,而是一個可以讓java ...
  • 在PC版開發中由於IE原因,我們很少用到css3,但隨著平板和智能手機進入我們的生活,以及現在越來越流行,在手機版和平板版開發中我們就可以大膽的使用了,下麵我們探討常用幾個css3屬性: 1.css3首碼使用介紹,我們直接看個例子: -webkit-transform:rotate(-3deg);  ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...