原文:let和var在for循環中的不同表現

var聲明變量: var只有函數作用域,沒有塊級作用域 從上面的代碼可了解到,塊級作用域對var是沒有約束作用的。 let聲明變量: let與var不同,let是有塊級作用域的。 了解了上面的特性再來看看,var和let在for循環的一些不同表現: 可以看到只是聲明方式不一樣,輸出的結果卻有很大的差異。 在此之前還需要了解setTimeout 的執行機制: setTimeout 是以異步的方式執行 ...

2019-07-18 17:15 0 1687 推薦指數:

查看詳情

for循環中letvar的說明

參考資料:《JavaScript高級程序設計》 在 let 出現之前,for 循環定義的迭代變量會滲透到循環體外部: for (var i = 0; i < 5; ++i) { // 循環邏輯 } console.log(i ...

Sat Oct 31 17:32:00 CST 2020 0 524
for循環中letvar的區別

轉載於: https://www.cnblogs.com/echolun/p/10584703.html 一、一個簡單的for循環問題與我思考后產生的問題 還是這段代碼,分別用varlet去聲明變量,得到的卻是完全不同的結果,為什么?如果讓你把這個東西清晰的講給別人聽,怎么去描述 ...

Sun Jul 19 00:55:00 CST 2020 0 1152
for循環中setTimeout,varlet的不同

先看下面兩段代碼 一個是輸出0 1 2 3 4一個是輸出5個5 為什么let的i,在setTimeout里的匿名函數,i取的還是塊級作用域里的i? 一個假設是let循環中,每次循環,js引擎讓i都變成了一個新變量的原因導致的。 ...

Wed Jan 23 21:21:00 CST 2019 0 891
for循環中letvar的區別

前言 對呀初學JavaScript的同學來說,變量提升永遠都是過不去的坎,相信我們都遇到過這種情況,看下面 問題: var 變量i是var命令聲明的,在全局范圍內都有效,所以全局只有一個變量i。 每一次循環,變量i的值都會發生改變,而循環內被賦給數組a的函數內部 ...

Thu Nov 25 00:48:00 CST 2021 0 103
js for循環中varlet

上面代碼中,變量i是var命令聲明的,在全局范圍內都有效,所以全局只有一個變量i。每一次循環,變量i的值都會發生改變,而循環內被賦給數組a的函數內部的console.log(i),里面的i指向 ...

Fri Feb 05 05:28:00 CST 2021 0 1071
javaScript for 循環中使用 letvar

var 聲明 let 聲明 上面的代碼,因為在for循環中使用了let聲明循環變量, 所以每一個值都會存在於單獨的作用域不會被覆蓋掉,因此,循環結束后得到的值是0,1,2,3,4 ...

Thu Jul 22 23:37:00 CST 2021 1 123
JavaScript:for循環中letvar變量的綁定

碰到一道題: for(var i=0;i<2;i++){ setTimeout(function(){ console.log(i); },100) } //輸出結果為:2 2 for(let i=0;i<2;i++){ setTimeout(function ...

Tue Nov 26 06:09:00 CST 2019 0 451
js基礎 ---- for循環中letvar的區別

前言:   對呀初學JavaScript的同學來說,變量提升永遠都是過不去的坎,相信我們都遇到過這種情況,看下面 問題:    var arr = []; for(var i = 0; i <= 10; i++ ){ arr[i] = function ...

Tue Mar 09 01:37:00 CST 2021 0 412
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM