91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ECMAScript 學習筆記(2)--ES6新增let、箭頭函數理解

發布時間:2020-06-18 16:35:25 來源:網絡 閱讀:681 作者:daydaydream 欄目:web開發

1、關于let
用來鎖定塊程序內的變量非常實用:

   var a = [];

for (var i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 輸出10
用var i 并沒有將i值鎖定(var定義的i會變量提升,作為全局變量),數組a中每個成員中的i都是公用一個變量空間,所以最后i為10,a[1]()-----a[10]()輸出均為10

   var a = [];

for (let i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 輸出6

用let i 會針對for每次循環的{ }塊代碼重新定義變量空間,js解釋引擎會自動記錄上次i值,所以a的每個成員的i值都是不一樣的!

2、箭頭函數使函數定義變得更簡潔:

var f = () => 5;
// 等同于
var f = function () { return 5 };

var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2) {
return num1 + num2;
};

箭頭前一般為傳入參與,箭頭后一般返回參數,沒有傳入參數可以用(),如果沒有返回參數可以用{}把語句包含。

關于箭頭函數有幾個使用注意點:

(1)函數體內的this對象,就是定義時所在的對象,而不是使用時所在的對象。如下:

{
var ft=function(){
this.a='a';
this.b='b';
this.c={
a: 'a+';
b: ()=>{
return this.a;
}

                          }

          }

          console.log(new ft().c.b());  //顯示 a,不是a+,因為this指向在定義箭頭函數時就已經被確定了箭頭函數外的this相同

}

比較非箭頭函數寫法結果:

{
var ft=function(){
this.a='a';
this.b='b';
this.c={
a: 'a+';
b: fuction(){
return this.a;
}

                          }

          }

          console.log(new ft().c.b());  //顯示 a+,不是a,此時的 this是在對象被使用的時候定義,即被調用的時候定義,this指向c

}

(2)不可以當作構造函數,也就是說,不可以使用new命令,否則會拋出一個錯誤。

(3)不可以使用arguments對象,該對象在函數體內不存在。如果要用,可以用 rest 參數代替。

(4)不可以使用yield命令,因此箭頭函數不能用作 Generator 函數。
先做個記錄,有時間再分析

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

华容县| 田林县| 寿阳县| 丹巴县| 东阳市| 仙居县| 苏尼特左旗| 革吉县| 大方县| 桐城市| 青铜峡市| 太白县| 乐陵市| 方正县| 嘉峪关市| 天门市| 灵石县| 四会市| 朔州市| 贺州市| 镇康县| 昌图县| 广水市| 佛山市| 垫江县| 称多县| 高雄县| 外汇| 乌拉特前旗| 仙游县| 郑州市| 巴塘县| 宜良县| 宾阳县| 宁明县| 东乡县| 海宁市| 镶黄旗| 赞皇县| 米林县| 凌海市|