摘要:前言來自閱讀阮老師的入門的小結(jié)疑問先開個坑,慢慢填問題和循環(huán)先看書中的一段代碼這個我們知道,是因為每個都被賦予了一個函數(shù),輸出作用域的,而是在全局作用域下調(diào)用的,所以輸出的是全局變量,因為循環(huán)沒有塊作用域,所以輸出。
前言
來自閱讀阮老師的《ES6入門》的小結(jié)+疑問~先開個坑,慢慢填
問題Q:let和for循環(huán)?
先看書中的一段代碼:
var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10
這個我們知道,是因為每個a[i]都被賦予了一個函數(shù),輸出作用域的i,而a[6]()是在全局作用域下調(diào)用的,所以輸出的i是全局變量i,因為for循環(huán)沒有塊作用域,所以輸出10。
改成let后:
var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 6
其實我第一次看到這里是不能理解的,然后看到書上說:
變量i是let聲明的,當(dāng)前的i只在本輪循環(huán)有效,所以每一次循環(huán)的i其實都是一個新的變量,所以最后輸出的是6。
好吧,還是感覺沒清楚到底這個機制是啥樣的(⊙﹏⊙),那我就用小工具把它轉(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
這個結(jié)果就很清楚啦,它類似在執(zhí)行語句的外面包裹了一個函數(shù),結(jié)果就是i當(dāng)成參數(shù)傳進去了,而且還形成了一個閉包:
再來看另一個例子:
for (let i = 0; i < 3; i++) { let i = "abc"; console.log(i); } // abc // abc // abc
原文說:
for循環(huán)還有一個特別之處,就是設(shè)置循環(huán)變量的那部分是一個父作用域,而循環(huán)體內(nèi)部是一個多帶帶的子作用域。
轉(zhuǎn)換之后的結(jié)果(這里有小問題0_0,單純轉(zhuǎn)換出來會都是i,但是多復(fù)制一份,轉(zhuǎn)出來就是下面這種,我個人覺得根據(jù)意思應(yīng)該轉(zhuǎn)成這樣才是對的):
for (var _i = 0; _i < 3; _i++) { var _i2 = "abc"; console.log(_i2); }
Q:let特性?
不存在變量提升
暫時性死區(qū)(temporal dead zone)
在代碼塊內(nèi),使用let命令聲明變量之前,該變量都是不可用的
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/93500.html
摘要:模板字面量相當(dāng)于格式化字符串字符串用兩個包含起來并且內(nèi)部的占位符用標(biāo)識一般用于標(biāo)識多行文本或者配合函數(shù)使用與箭頭函數(shù)用于數(shù)組是用于讓數(shù)組每一個元素都調(diào)用函數(shù)的語法基本格式為其中為數(shù)組元素下標(biāo)為當(dāng)前元素所屬的數(shù)組對象在實際調(diào)用時只需要箭頭函數(shù) 1.模板字面量相當(dāng)于格式化字符串,字符串用兩個``包含起來,并且內(nèi)部的占位符用${variable}標(biāo)識.一般用于標(biāo)識多行文本或者配合函數(shù)使用. ...
摘要:前端小白最近面試幾家公司,寫點面經(jīng)分享給大家,同時記錄下自己的缺點以供后期補足,各個公司的開發(fā)方向不同,請各位理性看待。直接現(xiàn)場手敲觸發(fā)的樣式。數(shù)組去重如何實現(xiàn)如果用的話,里面如何寫排序算法。對象何時被修改心態(tài)需要調(diào)整好,不緊張不匆忙。 前端小白最近面試幾家公司,寫點面經(jīng)分享給大家,同時記錄下自己的缺點以供后期補足,各個公司的開發(fā)方向不同,請各位理性看待。 問題相關(guān) Css 布局方式有...
摘要:前端小白最近面試幾家公司,寫點面經(jīng)分享給大家,同時記錄下自己的缺點以供后期補足,各個公司的開發(fā)方向不同,請各位理性看待。直接現(xiàn)場手敲觸發(fā)的樣式。數(shù)組去重如何實現(xiàn)如果用的話,里面如何寫排序算法。對象何時被修改心態(tài)需要調(diào)整好,不緊張不匆忙。 前端小白最近面試幾家公司,寫點面經(jīng)分享給大家,同時記錄下自己的缺點以供后期補足,各個公司的開發(fā)方向不同,請各位理性看待。 問題相關(guān) Css 布局方式有...
閱讀 1735·2021-11-22 12:09
閱讀 1463·2019-08-30 13:22
閱讀 2094·2019-08-29 17:00
閱讀 2645·2019-08-29 16:28
閱讀 2956·2019-08-26 13:51
閱讀 1184·2019-08-26 13:25
閱讀 3245·2019-08-26 12:14
閱讀 3015·2019-08-26 12:14