養成JavaScript代碼編寫的好習慣

來源:互聯網
上載者:User

良好的習慣總是讓人受益匪淺,在編寫代碼的時候,良好的習慣會使得開發更加地高效,減少出錯的幾率,甚至提高代碼的運行效率,下面是一些在 JavaScript 代碼編寫中應該注意的幾個問題,它們都非常容易遇到,卻又可能非常容易地被忽略。

1. 減少不必要的全部變數

關於全域變數,這是 JavaScript 非常糟糕的一個特性,它非常地容易被建立,特別是被不小心地建立。在程式變得複雜,或者同時運行多個程式的時候,它可能帶來難以調試的錯誤。在定義變數前加上 var,是首先應該注意並警惕的。

function fn(){    var a = 1;   //局部變數    b = 1;   //全域變數}
2. 正確書寫 script 標籤

如果你的 script 標籤中還帶有 language 屬性,說明你真的奧特了,趕緊去掉吧,這個屬性早已經被 W3C 開除了,在 XHTML 1.0嚴格型中(Strict),甚至已經不再支援這個屬性。需要提醒一點的是,在 Html5 中,script 標籤也不再需要 type 屬性,對於 Html5 來說,JavaScript 是唯一被支援的指令碼語言。

<!-- XHTML 1.0 --><script type="javascript"></script><!-- HTML 5 --><script></script>
3. 去掉JSON最後一組索引值對後面的逗號

如果你的代碼像下面這樣,在 IE 中會報錯,並且這個錯誤很難被發現,IE 的報錯也不會提供任何有價值的資訊,唯一能做的就是在編寫的時候格外小心,如果你的 JSON 是後端返回的,那麼記得在下周一上班時把這個資訊傳達給後端程式員。

var post = {    title : "養成JavaScript代碼編寫的好習慣",    postDate : "2010-07-16",    author : "堅強的小展",    //注意,這個逗號會讓程式在 IE 的所有版本下報錯。}
4. 避免依賴 typeof 驗證資料類型

typeof 是用來驗證資料類型的方法,不幸的是,當需要驗證的資料類型為數組、函數等時,這個方法並不能返回我們想象中的結果。事實上這並不是 typeof 的錯,在 JavaScript 中,數組和函數的本質實際上也是對象,但這的確給我們帶來了麻煩。

/** 依賴 typeof 的驗證結果 **/var a = [];typeof a;   // "object"var b = function(){};typeof b;   // "object";typeof null;    // "object"
/** 正確的驗證方法 **/var a = [];a.constructor === Array;   // truevar b = function(){};b.constructor === Function;   // true/** 驗證某個變數是否為null **/typeof c === "undefined";   //true
5. 使用全等運算子代替相當相當運算子

作為弱類型語言的 JavaScript 似乎讓我們習慣了不注重變數的資料類型,這樣的偷懶看上去讓我們變得輕鬆一些了,但這在運算的時候可能會帶來更大的麻煩。推薦的做法是在開發中明確地瞭解 變數當前的資料類型,並且在做相等判斷的時候,使用 === 運算子來代替 == 運算子,這意味著在進行比較前,必須確保參與比較的兩個變數屬於同一資料類型。這樣做的好處可以避免 JavaScript 在處理不同資料類型的比較時自動轉換資料類型可能帶來的麻煩,同時也可以提高程式的運行效率。

0 == "";   // true0 === "";   // false1 == "1";   // true1 === "1";   // false
6. 避免使用 with 和 eval

這一點被人提得比較多,這裡就不再多說了,避免使用它們,以增加程式的可讀性、安全性,減小出錯的機率,提高運行效率。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.