天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

如何編寫高質量的Javascript代碼

  優秀的Stoyan Stefanov在他的新書中(《Javascript Patterns》)介紹了很多編寫高質量代碼的技巧,比如避免使用全局變量,使用單一的var關鍵字,循環式預存長度等等。

  這篇文章不僅僅從代碼本身來考慮如何優化編碼,也從代碼的設計階段來考慮,包括書寫API文檔,同事的review,使用JSLint。這些習慣都能幫助你編寫更加高質量的、更易于理解的、可維護的代碼(讓你的代碼在多年之后仍使你引以為傲)。

  編寫可維護的代碼

  軟件的BUG修復需要花費大量的精力。尤其當代碼已經發布之后,隨著時間的增長,維護的成本愈發的高。當你一發現BUG的時候,就立即去修復,這時候你的代碼還是熱乎的,你也不需要回憶,因為就是剛剛寫好的。但是當你做了其他任務,幾乎完全忘記了這份代碼,這時候就需要:

  • 重新學習和理解問題
  • 理解代碼是如何解決問題的

  另外一個問題是,在大項目或者大公司里面,經常是解決BUG的人不是產生BUG的人,而且也不是發現BUG的人。所以減少理解代碼的時間就是最重要的問題,無論這個代碼是你自己以前寫的還是團隊中的其他成員寫的,因為我們都想去搞搞新的有意思的東西,而不是去維護那些個陳舊的代碼。

  還有一個開發中的普遍問題就是,往往讀代碼的時間比寫代碼的時間還要多。有時候你鉆研一個問題,可以花整整一個下午的時間來考慮代碼的編寫。這個代碼當時是可以工作的,但是隨著開發的進行,其他東西發生了很大的變化,這時候也就需要你自己來重新審查修改編寫代碼。比如:

  • 還有BUG沒有解決
  • 添加了新的功能
  • 程序需要在新的環境中運行(比如一個新上市的瀏覽器)
  • 代碼有問題
  • 代碼需要重寫因為修改了架構甚至要使用另一個語言

  因為這些原因,也許你當時一個下午寫好的代碼,后面需要花費幾周的時間來閱讀。所以編寫可維護的代碼對于軟件的成功至關重要。

  可維護的代碼包括:

  • 可讀性
  • 連續性
  • 預見性
  • 看起來是一個人寫的
  • 有文檔

  最少化全局變量

  Javascript使用函數來約定作用域。一個在函數內部聲明的變量在外部是不可見的。所以,全局變量也就是聲明在任何函數之外的或者沒有被聲明的變量。

  Javascript中,在任何函數之外有個可訪問的全局對象,每一個你創建的全局變量都是這個對象的一個屬性。在瀏覽器中,為了方便,通常用window來指代這個全局變量。下面的代碼就是說明如何創建一個全局變量:

myglobal = "hello"; // antipatternconsole.log(myglobal); // "hello"console.log(window.myglobal); // "hello"console.log(window["myglobal"]); // "hello"console.log(this.myglobal); // "hello

it知識庫如何編寫高質量的Javascript代碼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美派对xxxhdparty | 亚洲人成人毛片无遮挡 | 亚洲另类国产综合在线 | 色大姐综合网 | 亚洲免费视频观看 | 日本免费一本天堂在线 | 亚洲午夜精品aaa级久久久久 | 亚洲A片不卡无码久久尤物 亚洲a免费 | 白丝高中生被c爽哭 | 亚洲欧美综合中文 | 人妻系列合集 | 国产精品成人在线播放 | 美女裸露胸部100%无遮挡 | 亚洲精品无码久久久久A片空 | 十九岁在线观看免费完整版电影 | 牛牛在线国产精品 | 中文字幕在线视频在线看 | 翁公与小莹在客厅激情 | 一级做a爰片久久毛片苍井优 | 精品三级久久久久电影网1 精品日韩视频 | 亚洲黄色官网 | 午夜视频在线观看国产 | 亚洲国产AV精品一区二区蜜芽 | 男女车车的车车网站W98免费 | 亚洲精品拍拍央视网出文 | 116美女写真成人午夜视频 | 成人国产在线看不卡 | 草柳最新地址 | 性啪啪chinese东北女人 | 中文无码有码亚洲 欧美 | 国产精品色午夜视频免费看 | 俄罗斯XBXBXB兽交 | 国产99视频在线观看 | 91传媒蜜桃香蕉在线观看 | 久就热视频精品免费99 | 国产露脸无码A区久久蘑菇 国产露脸无码A区久久 | 亚洲欧洲精品成人久久曰影片 | 国产精品av | 偷窥wc美女毛茸茸视频 | 国产亚洲精品久久久999无毒 | 国产九色在线 |