js-ES6學習筆記-編程風格(1)

來源:互聯網
上載者:User

標籤:設定   之間   select   變數賦值   添加   ora   user   擴充運算   length   

1、ES6提出了兩個新的聲明變數的命令:letconst。其中,let完全可以取代var,因為兩者語義相同,而且let沒有副作用。

2、var命令存在變數提升效用,let命令沒有這個問題。建議不再使用var命令,而是使用let命令取代。

3、在letconst之間,建議優先使用const,尤其是在全域環境,不應該設定變數,只應設定常量。 JavaScript 編譯器會對const進行最佳化,所以多使用const,有利於提供者的運行效率。所有的函數都應該設定為常量。

4、靜態字串一律使用單引號或反引號,不使用雙引號。動態字串使用反引號。

// badconst a = "foobar";const b = ‘foo‘ + a + ‘bar‘;// acceptableconst c = `foobar`;// goodconst a = ‘foobar‘;const b = `foo${a}bar`;const c = ‘foobar‘;

5、使用數群組成員對變數賦值時,優先使用解構賦值。函數的參數如果是對象的成員,優先使用解構賦值。如果函數返回多個值,優先使用對象的解構賦值,而不是數組的解構賦值。這樣便於以後添加傳回值,以及更改傳回值的順序。

// badfunction getFullName(user) {  const firstName = user.firstName;  const lastName = user.lastName;}// goodfunction getFullName(obj) {  const { firstName, lastName } = obj;}// bestfunction getFullName({ firstName, lastName }) {}

6、單行定義的對象,最後一個成員不以逗號結尾。多行定義的對象,最後一個成員以逗號結尾。

如果對象的屬性名稱是動態,可以在創造對象的時候,使用屬性運算式定義。

// badconst obj = {  id: 5,  name: ‘San Francisco‘,};obj[getKey(‘enabled‘)] = true;// goodconst obj = {  id: 5,  name: ‘San Francisco‘,  [getKey(‘enabled‘)]: true,};

7、使用擴充運算子(...)拷貝數組。

// badconst len = items.length;const itemsCopy = [];let i;for (i = 0; i < len; i++) {  itemsCopy[i] = items[i];}// goodconst itemsCopy = [...items];

8、使用Array.from方法,將類似數組的對象轉為數組。

const foo = document.querySelectorAll(‘.foo‘);const nodes = Array.from(foo);

 

js-ES6學習筆記-編程風格(1)

聯繫我們

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