讓你的JS代碼更具可讀性

來源:互聯網
上載者:User

標籤:tar   特定   目的   對象   java   變數   數字   邏輯   表示   

一.合理的添加註釋

  • 函數和方法——每個函數或方法都應該包含一個注釋,描述其目的和用於完成任務所可能使用 的演算法。陳述事先的假設也非常重要,如參數代表什麼,函數是否有傳回值(因為這不能從函 數定義中推斷出來)。 
  • 大段代碼——用於完成單個任務的多行代碼應該在前面放一個描述任務的注釋。 
  • 複雜的演算法——如果使用了一種獨特的方式解決某個問題,則要在注釋中解釋你是如何做的。(這不僅僅可以協助其他瀏覽你代碼的人,也能在下次你自己查閱代碼的時候協助理解)

二.合理的變數和函數命名 

適當給變數和函數起名字對於增加代碼可理解性是非常重要的。必須避免出現無法表示所包含的資料類型的無用變數名。有了合適的命名,代碼閱讀起來就像講述故事一樣,更容易理解。 

命名的一般規則如下: 

  • 變數名應為名詞如 car 或 person。
  • 函數名應該以動詞開始,如 getName()。返回布爾類型值的函數一般以 is 開頭,如isEnable()。

  • 變數和函數都應使用合乎邏輯的名字,不要擔心長度。長度問題可以通過後處理和壓縮來緩解。 

三.變數類型透明 

  由於在 JavaScript 中變數是鬆散類型的,很容易就忘記變數所應包含的資料類型。合適的命名方式 可以一定程度上緩解這個問題,但放到所有的情況下看,還不夠。有三種表示VARIANT 資料型別的方式。 第一種方式是初始化。當定義了一個變數後,它應該被初始化為一個值,來暗示它將來應該如何應 用。例如,將來儲存布爾類型值的變數應該初始化為 true 或者 false,將來儲存數位變數就應該初 始化為一個數字,如以下例子所示: 

  • //通過初始化指定變數類型
  • var found = false; //布爾型
  • var count = -1; //數字
  • var name = ""; //字串
  • var person = null; //對象 

  初始化為一個特定的資料類型可以很好的指明變數的類型。但缺點是它無法用於函式宣告中的函數 參數。

第二種方法是使用匈牙利標記法來指定變數類型。匈牙利標記法在變數名之前加上一個或多個字元 來表示資料類型。這個標記法在指令碼語言中很流行,曾經很長時間也是 JavaScript 所推崇的方式。 JavaScript 中最傳統的匈牙利標記法是用單個字元表示基本類型:"o"代表對象,"s"代表字串,"i" 代表整數,"f"代表浮點數,"b"代表布爾型。如下所示: 

  • //用於指定資料類型的匈牙利標記法
  • var bFound; //布爾型
  • var iCount; //整數
  • var sName; //字串
  • var oPerson; //對象 

  JavaScript 中用匈牙利標記法的好處是函數參數一樣可以使用。但它的缺點是讓代碼某種程度上難 以閱讀,阻礙了沒有用它時代碼的直觀性和句子式的特質。因此,匈牙利標記法失去了一些開發人員的寵愛。 

最後一種指定變數類型的方式是使用類型注釋。類型注釋放在變數名右邊,但是在初始化前面。這 種方式是在變數旁邊放一段指定類型的注釋,如下所示: 

//用於指定類型的類型注釋

  • var found /*:Boolean*/ = false; 

  這三種指定VARIANT 資料型別的方法。每種都有各自的優勢和劣勢,要自己在使用之前進行評估。最重要的是要確定哪種最適合你的項目並一致使用。 

讓你的JS代碼更具可讀性

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.