生活随笔
收集整理的這篇文章主要介紹了
《编写高质量代码改善JavaScript程序的188个建议》读书笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
逗號運算符比較怪異。如 ? ?var a =(1,2,3,4);alert(a);// 4 ? ? ?var a = 1,2,3,4;//報錯注意a++和++a的差別,變量在參與運算中不斷地變化。var a;?a = (a++) + (++a) - (a++) - (a++);在if語句中禁止使用function語句,雖然大多數的瀏覽器都允許在if語句中使用function,但它們在解析function語句的處理各不相同,因此造成了可移植性方面的問題。一個語句不能以一個函數表達式開頭(?)。基于函數的迭代要比基于循環的迭代慢一些。因為每個數組項要關聯額外的函數調用時造成速度慢的主要原因。當條件體增加時,if性能負擔增加的程度比switch更大。在JavaScript提供的4中循環類型中,只有for in 循環執行速度比其他循環明顯要慢,因為除了要查找對象上的屬性外,還要查找原型鏈上的屬性,增加性能開銷。(in 運算符的運算機制?)回溯是影響正則整體性能的唯一因素。使用function語句和函數直接量定義的函數構造總會被里提取出來優先執行。只有在函數被解析和執行完畢之后,才會按順序執行其他代碼行。但是使用new Function構造函數定義的函數并非提前運行,而是運行時動態地被執行,這也是Function構造函數定義的函數具有頂級作用域的根本原因。通過new運算符可以復制函數的結構,從而實現函數實例化的目的。惰性載入函數主要解決的問題也是兼容性,原理跟分支函數類似。函數綁定是為了改變函數執行上下文,特別是當函數中有this關鍵字時。高階函數至少滿足以下條件之一:□接收函數作為輸入;□輸出一個函數借助prototype屬性,可以訪問原型對象內部成員。當構造函數實例化后,所有實例對象都可以訪問構造函數的原型成員。本地屬性會覆蓋原型屬性,如果使用delete運算符刪除本地屬性,那么原型屬性依然會顯示出來。使用原型的幾種用途:1)使用原型設置默認值;2)使用原型實現數據備份;3)使用原型設置只讀屬性;4)使用原型進行批量復制“||”運算符為對象屬性設置默認值,當對象屬性值未定義時,以默認值進行傳遞。使用hasOwnProperty方法。如果對象擁有獨有的屬性,那么調用該方法將返回true,也就是說hasOwnProperty不會檢查原型鏈。構造函數是一個特殊結構的函數,它沒有返回值,通過this關鍵字來初始化實例對象。JavaScript核心對象中的Math和Global都是靜態對象,不需要實例化就可以直接訪問。類的靜態成員包括私有和公共兩種類型,不管是公共成員還是私有成員,它們在系統中只有一份副本,不會被分成多份傳遞給不同的對象,而是通過函數指針進行引用,這與閉包截然不同。如果構造函數有返回值,并且返回值是引用類型,那么經過new運算符計算后,返回的不再是構造偶函數自身對應的實例對象,而是構造函數包含的返回值(即引用類型值)。瀏覽器渲染操作的順序如下:1)解析HTML結構;2)加載外部腳本和樣式文件;3)解析并執行腳本代碼;4)構造HTML DOM模型;5)加載圖片等外部文件;6)頁面加載完畢createElement和innerHTML兩者性能基本相近,不過在幾乎所有的瀏覽器中innerHTML速度更快一些,但最新的基于WebKit的瀏覽器(Chrome和Safari)除外。警惕文檔遍歷中的空格bug。在遍歷DOM文檔元素時,空格的存在很容易造成誤解,因為DOM把空格也作為一個節點進行解析(包括換行符)。在大多數瀏覽器上,克隆節點更有效率,但提高得不太多。用克隆節點的辦法創建1000行表格,只創建一次單元格,然后重復執行復制操作,只有會更快一點。當DOM改變影響到元素的幾何屬性(寬和高)時,如改變邊框屬性或在段落中添加文字將發生一系列后續動作:瀏覽器需要重新計算元素的幾何屬性,而且其他元素的幾何屬性和位置也會因此改變并受到影響。瀏覽器使渲染樹上受到影響的部分失效,然后重構渲染樹,這個過程稱作重排版(reflow)。對于瀏覽器窗口來說,通過獲取html標簽的clientWidth和clientHeight屬性就可以得到瀏覽器窗口的可視寬度和高度,document.documentElement.clientWidth。但是ie一下版本的瀏覽器中,body是最頂層的可視元素,因此需要寫成document.body.clientWidth。在JavaScript中,不只是with表達式人為地改變運行期上下文的作用域鏈,try catch表達式的catch子句也具有相同效果。DOM元素中有一些特殊的測量屬性的訪問和方法的調用,也會觸發reflow,比較典型的就是offsetWidth和getComputedStyle。為了提高DOM訪問效率,推薦使用XPath查找元素。很多瀏覽器已支持該功能。每個瀏覽器對長時間運行腳本檢查方法上略有不同:IE)500萬條語句以內;FF)默認限制為10s;Safari)默認限制為5s,且不可改變但能關閉;Chrome)沒有長時間運行腳本限制,代之以依賴它的通用崩潰檢測系統來處理此類實例;Opera)沒有時間限制。
轉載于:https://www.cnblogs.com/shuiyi/p/5433272.html
總結
以上是生活随笔為你收集整理的《编写高质量代码改善JavaScript程序的188个建议》读书笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。