国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

for 循環(huán) var 和 let

shengguo / 1365人閱讀

摘要:純屬個(gè)人理解,如有問題還請(qǐng)指出在聲明的內(nèi)存在一個(gè)變量,會(huì)存在引擎內(nèi)部。

純屬個(gè)人理解,如有問題還請(qǐng)指出~

在聲明的()內(nèi)存在一個(gè)變量 i,會(huì)存在 JavaScript 引擎內(nèi)部。 每一次循環(huán)的時(shí)候, JavaScript 引擎內(nèi)部會(huì)記住上一輪循環(huán)的值,然后將新的 i 的值賦值給 i

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

由于let塊級(jí)作用域,for()內(nèi)的let 相當(dāng)于有個(gè)隱藏的父作用域,for{}循環(huán)體內(nèi)的let 是新的子作用域,重新聲明一個(gè) i;不會(huì)影響()里 i 的值

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

但是如果不聲明 i,直接給 i 賦值,會(huì)影響()里 i 的值,說明()是循環(huán)體的上一級(jí)作用域,在循環(huán)體里直接改變 i 的值會(huì)影響上一級(jí)作用域里的 i 值

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

相當(dāng)于
1 先var i;
2 再執(zhí)行 for 循環(huán)
3 第一次 i = 0 滿足條件 進(jìn)入循環(huán)體,由于 var 沒有塊級(jí)作用域的概念,所以會(huì)重新聲明修改for循環(huán)外全局作用域的 i 的值,從而影響了循環(huán)變量的值,導(dǎo)致后面條件不滿足進(jìn)入不到循環(huán)體,所以只輸出一次

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

循環(huán)變量 i 是全局作用域,循環(huán)體內(nèi) let i 為塊級(jí)作用域內(nèi)的變量,不影響全局變量,輸出三次

for (let i = 0; i < 3; i++) {
  var i = "abc";
  console.log(i);
}
//Uncaught SyntaxError: Identifier "i" has already been declared

!!! 不太理解這個(gè)為什么會(huì)報(bào)錯(cuò),希望懂得的小伙伴們給個(gè)指導(dǎo)
個(gè)人迷惑的地方:報(bào)這個(gè)錯(cuò)是因?yàn)樵谕粋€(gè)作用域下重復(fù)聲明變量 i,但是{}內(nèi)的var i 為 全局作用域下的 i ,()內(nèi)的 let i 屬于()的作用域,兩個(gè)不同的作用域?yàn)槭裁磿?huì)報(bào)錯(cuò)呢???

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/106608.html

相關(guān)文章

  • 循環(huán)中的異步&&循環(huán)中的閉包

    摘要:原文鏈接在這之前先要了解一下循環(huán)中和的區(qū)別是函數(shù)級(jí)作用域或者全局作用域,是塊級(jí)作用域看一個(gè)例子循環(huán)中的邏輯代碼函數(shù)下的輸出,全局下的不存在現(xiàn)在我們把換為循環(huán)中的邏輯代碼報(bào)錯(cuò)了,不在函數(shù)作用域下,當(dāng)然肯定也不會(huì)再全局下因?yàn)楹偷倪@個(gè)區(qū)別當(dāng)然和的 原文鏈接在這之前先要了解一下 for循環(huán)中l(wèi)et 和var的區(qū)別 var 是函數(shù)級(jí)作用域或者全局作用域,let是塊級(jí)作用域看一個(gè)例子 fu...

    Near_Li 評(píng)論0 收藏0
  • ES6 系列之 let const

    摘要:塊級(jí)作用域存在于函數(shù)內(nèi)部塊中字符和之間的區(qū)域和塊級(jí)聲明用于聲明在指定塊的作用域之外無法訪問的變量。和都是塊級(jí)聲明的一種。值得一提的是聲明不允許修改綁定,但允許修改值。這意味著當(dāng)用聲明對(duì)象時(shí)沒有問題報(bào)錯(cuò)臨時(shí)死區(qū)臨時(shí)死區(qū),簡寫為。 塊級(jí)作用域的出現(xiàn) 通過 var 聲明的變量存在變量提升的特性: if (condition) { var value = 1; } console.lo...

    PascalXie 評(píng)論0 收藏0
  • es6塊級(jí)綁定之let and const全理解

    摘要:聲明會(huì)組織對(duì)變量綁定和對(duì)自生值的修改,這意味著聲明并不會(huì)組織對(duì)變量成員的修改。循環(huán)中的塊級(jí)綁定在此處仍然可被訪問輸出的結(jié)果并不是預(yù)期的值而是是因?yàn)槁暶鲗?dǎo)致的變量的提升。全局塊級(jí)綁定與不同于的另一個(gè)方面是在全局作用域上的表現(xiàn)。 變量聲明一直是js工作中最微妙的一部分,它不像C語言一樣,變量總是在被它創(chuàng)建的時(shí)候聲明,js語言可以允許你在你需要聲明變量的時(shí)候進(jìn)行聲明。 var let co...

    TigerChain 評(píng)論0 收藏0
  • 深入理解ES6 - var-let-const

    摘要:聲明變量不存在變量提升。臨時(shí)死區(qū),而且不能在聲明之前訪問它。禁止重復(fù)聲明相同的變量,否則報(bào)錯(cuò)。不存在變量提升,一旦執(zhí)行快外就會(huì)立即銷毀。聲明不允許修改綁定,但允許修改值,也就是說用創(chuàng)建對(duì)象后,可以修改該對(duì)象的屬性值。 知識(shí)點(diǎn) var 聲明變量: 1、存在變量提升,實(shí)際上var無論在哪里聲明,都會(huì)被當(dāng)做當(dāng)前的作用域頂部聲明變量。 2、可以重復(fù)聲明,后聲明的變量會(huì)覆蓋前聲明的變量。 let...

    alexnevsky 評(píng)論0 收藏0
  • es6--letconst

    摘要:同時(shí)這個(gè)變量立即被初始化,初始值為當(dāng)語句執(zhí)行到賦值語句時(shí),這個(gè)變量改變其初始值。對(duì)一個(gè)還未初始化的變量進(jìn)行操作將會(huì)引起。循環(huán)和循環(huán)使用申明變量時(shí)和循環(huán)一樣。的運(yùn)行過程和三者的表現(xiàn)和在循環(huán)過程中相似。 let和const 標(biāo)簽(空格分隔): es6 let命令 這個(gè)命令是用來申明變量的,但是和es5不同的是,用它來聲明的變量是局部變量,存在于局部作用域(blocked scope): ...

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

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

0條評(píng)論

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