亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

【小記】ES6

amuqiao / 3555人閱讀

摘要:前言來自閱讀阮老師的入門的小結(jié)疑問先開個(gè)坑,慢慢填問題和循環(huán)先看書中的一段代碼這個(gè)我們知道,是因?yàn)槊總€(gè)都被賦予了一個(gè)函數(shù),輸出作用域的,而是在全局作用域下調(diào)用的,所以輸出的是全局變量,因?yàn)檠h(huán)沒有塊作用域,所以輸出。

前言

來自閱讀阮老師的《ES6入門》的小結(jié)+疑問~先開個(gè)坑,慢慢填

問題

Q:let和for循環(huán)?
先看書中的一段代碼:

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

這個(gè)我們知道,是因?yàn)槊總€(gè)a[i]都被賦予了一個(gè)函數(shù),輸出作用域的i,而a[6]()是在全局作用域下調(diào)用的,所以輸出的i是全局變量i,因?yàn)閒or循環(huán)沒有塊作用域,所以輸出10。
改成let后:

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

其實(shí)我第一次看到這里是不能理解的,然后看到書上說:

變量i是let聲明的,當(dāng)前的i只在本輪循環(huán)有效,所以每一次循環(huán)的i其實(shí)都是一個(gè)新的變量,所以最后輸出的是6。

好吧,還是感覺沒清楚到底這個(gè)機(jī)制是啥樣的(⊙﹏⊙),那我就用小工具把它轉(zhuǎn)為ES5語法了(雖然也不能當(dāng)成完全等同吧(lll¬ω¬)):

"use strict";
var a = [];

var _loop = function _loop(i) {
  a[i] = function () {
    console.log(i);
  };
};

for (var i = 0; i < 10; i++) {
  _loop(i);
}
a[6](); // 6

這個(gè)結(jié)果就很清楚啦,它類似在執(zhí)行語句的外面包裹了一個(gè)函數(shù),結(jié)果就是i當(dāng)成參數(shù)傳進(jìn)去了,而且還形成了一個(gè)閉包:

再來看另一個(gè)例子:

for (let i = 0; i < 3; i++) {
  let i = "abc";
  console.log(i);
}
// abc
// abc
// abc

原文說:

for循環(huán)還有一個(gè)特別之處,就是設(shè)置循環(huán)變量的那部分是一個(gè)父作用域,而循環(huán)體內(nèi)部是一個(gè)多帶帶的子作用域。

轉(zhuǎn)換之后的結(jié)果(這里有小問題0_0,單純轉(zhuǎn)換出來會(huì)都是i,但是多復(fù)制一份,轉(zhuǎn)出來就是下面這種,我個(gè)人覺得根據(jù)意思應(yīng)該轉(zhuǎn)成這樣才是對(duì)的):

for (var _i = 0; _i < 3; _i++) {
  var _i2 = "abc";
  console.log(_i2);
}

Q:let特性?
不存在變量提升
暫時(shí)性死區(qū)(temporal dead zone)

在代碼塊內(nèi),使用let命令聲明變量之前,該變量都是不可用的

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/93500.html

相關(guān)文章

  • ES6小記

    摘要:命令改變了這個(gè)行為,必須要在聲明后使用,否則報(bào)錯(cuò)。值為臨時(shí)鎖區(qū)保證了命令不會(huì)受到外部影響。基本使用聲明一個(gè)只讀的常量。默認(rèn)值解構(gòu)允許指定默認(rèn)值內(nèi)部嚴(yán)格使用來判斷是否有值,所以只有當(dāng)一個(gè)數(shù)組成員嚴(yán)格等于,默認(rèn)值才會(huì)生效。 ES6 ES6 就是ECMAScript 6是新版本JavaScript語言的標(biāo)準(zhǔn)。 1. let 和 const ES6 新增了 let 和 const 來聲明變量和...

    王晗 評(píng)論0 收藏0
  • javascript小記

    摘要:模板字面量相當(dāng)于格式化字符串字符串用兩個(gè)包含起來并且內(nèi)部的占位符用標(biāo)識(shí)一般用于標(biāo)識(shí)多行文本或者配合函數(shù)使用與箭頭函數(shù)用于數(shù)組是用于讓數(shù)組每一個(gè)元素都調(diào)用函數(shù)的語法基本格式為其中為數(shù)組元素下標(biāo)為當(dāng)前元素所屬的數(shù)組對(duì)象在實(shí)際調(diào)用時(shí)只需要箭頭函數(shù) 1.模板字面量相當(dāng)于格式化字符串,字符串用兩個(gè)``包含起來,并且內(nèi)部的占位符用${variable}標(biāo)識(shí).一般用于標(biāo)識(shí)多行文本或者配合函數(shù)使用. ...

    waltr 評(píng)論0 收藏0
  • 前端小白的面經(jīng)小記

    摘要:前端小白最近面試幾家公司,寫點(diǎn)面經(jīng)分享給大家,同時(shí)記錄下自己的缺點(diǎn)以供后期補(bǔ)足,各個(gè)公司的開發(fā)方向不同,請(qǐng)各位理性看待。直接現(xiàn)場(chǎng)手敲觸發(fā)的樣式。數(shù)組去重如何實(shí)現(xiàn)如果用的話,里面如何寫排序算法。對(duì)象何時(shí)被修改心態(tài)需要調(diào)整好,不緊張不匆忙。 前端小白最近面試幾家公司,寫點(diǎn)面經(jīng)分享給大家,同時(shí)記錄下自己的缺點(diǎn)以供后期補(bǔ)足,各個(gè)公司的開發(fā)方向不同,請(qǐng)各位理性看待。 問題相關(guān) Css 布局方式有...

    FuisonDesign 評(píng)論0 收藏0
  • 前端小白的面經(jīng)小記

    摘要:前端小白最近面試幾家公司,寫點(diǎn)面經(jīng)分享給大家,同時(shí)記錄下自己的缺點(diǎn)以供后期補(bǔ)足,各個(gè)公司的開發(fā)方向不同,請(qǐng)各位理性看待。直接現(xiàn)場(chǎng)手敲觸發(fā)的樣式。數(shù)組去重如何實(shí)現(xiàn)如果用的話,里面如何寫排序算法。對(duì)象何時(shí)被修改心態(tài)需要調(diào)整好,不緊張不匆忙。 前端小白最近面試幾家公司,寫點(diǎn)面經(jīng)分享給大家,同時(shí)記錄下自己的缺點(diǎn)以供后期補(bǔ)足,各個(gè)公司的開發(fā)方向不同,請(qǐng)各位理性看待。 問題相關(guān) Css 布局方式有...

    MSchumi 評(píng)論0 收藏0
  • 知識(shí)點(diǎn)小記

    摘要:箭頭函數(shù)我們來看一下箭頭函數(shù)的效果箭頭函數(shù)是無法通過來修改作用域的這個(gè)需要切記。所以切記在需要的時(shí)候使用箭頭函數(shù)。 這是一些小問題的記錄和總結(jié): 1. vue serve和build 在vue-cli3.0中可以快速的開發(fā)原型。通過全局安全@vue/cli-service-global npm i -g @vue/cli-service-global 那么就可以使用vue serve ...

    shery 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

amuqiao

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<