中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

六個更小但更棒的ES6功能

發(fā)布于:2021-02-19 00:02:59

0

404

0

ES6 JavaScript 語法更新

ES6為JavaScript開發(fā)人員帶來了大量令人興奮的新功能和語法更新。這些語言更新中的一些更新很大,但是如果不小心,您可能會錯過其中的一些小更新-這就是為什么我寫了《 六個小巧但很棒的ES6功能》這篇文章,列出了可以帶來很大不同的小事情當(dāng)您為當(dāng)今的瀏覽器編碼時。我想與您分享另外六個gem,您可以開始使用它們來減少代碼并最大化效率。

1.對象簡寫

新的對象創(chuàng)建速記語法允許開發(fā)人員在不定義鍵的情況下創(chuàng)建鍵=>值對象:var名稱成為鍵,而var的值成為新對象的值:

var x = 12;
var y = 'Yes!';
var z = { one: '1', two: '2' };

// The old way:
var obj = {
   x: x,
   y: y,
   z: z
};

var obj = { x, y, z };
/*
   {
       x: 12,
       y: "Yes!",
       z: { one: '1', two: '2' }
   }
*/

我無法告訴您以完全相同的方式手動編碼鍵=>值屬性的次數(shù)-現(xiàn)在我們只是有一種較短的方法來完成該任務(wù)。

2.方法屬性

當(dāng)涉及到這些ES6技巧時,似乎我很著迷于避免添加 function 關(guān)鍵字……我想這個技巧也沒有什么不同。無論如何,我們可以縮短對象函數(shù)的聲明,例如:

// Format: { myFn(param1) { ... } }
var davidwalsh = {
   makeItHappen(param) {
       /* do stuff */
   }
}

您必須承認(rèn),省去所有function 關(guān)鍵字madness確實可以使代碼更簡潔,維護(hù)更少。

3.塊與立即執(zhí)行的功能

創(chuàng)建立即執(zhí)行功能的模式有點難看:

(function() {

  /* do stuff */

})();

使用ES6,我們可以創(chuàng)建帶有Just的塊{},而使用let,我們可以在沒有所有括號的情況下立即執(zhí)行類似函數(shù)的行為:

{
   let j = 12;
   let divs = document.querySelectorAll('div');

   /* do more stuff */}j;  // ReferenceError: j is not defined...

如果在該塊內(nèi)聲明一個函數(shù),則該函數(shù)將泄漏出去,但如果保留為let,則實際上已創(chuàng)建了一個沒有括號的IEF。

4.  for循環(huán)和let

由于JavaScript中存在變量提升功能,因此我們經(jīng)常在塊,代碼的頂部聲明“無用的”迭代器變量for(var x =...,或者最糟糕的是忘記執(zhí)行其中任何一個,從而泄漏了全局變量……只是通過該死的可迭代對象進(jìn)行迭代。ES6解決了此煩惱,使我們可以將其let 用作解決方法:

for(let x = 0; x <= elements.length; x++) {
 console.log(x); // x increments
}

x; // ReferenceError: x is not defined

在不久的將來,我們將看到let 使用的次數(shù)更多甚至更多var。

5.  get 和 set 

作為MooTools團(tuán)隊的成員,在JavaScript類成為真正的事物之前,我是JavaScript類的忠實粉絲?,F(xiàn)在他們是一回事:

class Cart {
 constructor(total) {
     this._total = total;
 }
 get total() { return this._total; }
 set total(v) { this._total = Number(v); }

 get totalWithTax() { return parseInt(this._total * 1.1, 10); } /* 10% tax */
}

var cart = new Cart(100);

cart.totalWithTax === 110;

最好的部分是創(chuàng)建屬性的getter和setter的新功能!無需通過功能創(chuàng)建特殊設(shè)置-通過basic設(shè)置時,這些功能會自動執(zhí)行obj.prop = {value}。

6. startsWith,endsWith和includes

我們已經(jīng)在為自己的基本String函數(shù)編寫代碼了太久了-我記得在MooTools早期就這樣做了。的startsWith,endsWith和includes 字符串函數(shù)是這樣的函數(shù)的例子:

"MooTools".startsWith("Moo"); // true;
"MooTools".startsWith("moo"); // false;

"MooTools".endsWith("Tools"); // true;

"MooTools".includes("oo"); // true;

看到常識功能已成為一種語言,這令人難以置信。

ES6對于JavaScript來說是不可思議的飛躍。我在這篇文章中指出的技巧和先例將顯示即使最小的ES6更新也可以對可維護(hù)性產(chǎn)生很大的影響。我等不及要看下一輪JavaScript更新為我們提供了什么!