第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

怎么理解“循環(huán)語句部分是一個父作用域,而循環(huán)體內(nèi)部是一個單獨的子作用域”?

怎么理解“循環(huán)語句部分是一個父作用域,而循環(huán)體內(nèi)部是一個單獨的子作用域”?

小唯快跑啊 2018-11-06 13:13:27
如題。for (var i = 0; i < 3; i++) {  var i = 'abc';  console.log(i);}//為什么這里只輸出一次 abc ? 是因為'abc'++ <3 是false嗎?for (let i = 0; i < 3; i++) {  let i = 'abc';  console.log(i);}//為什么是3次 abc?for (let i = 0; i < 3; i++) {console.log(i) //這里報ReferenceError: i is not define?是因為暫時性死區(qū)?let i = 'abc';}
查看完整描述

1 回答

?
湖上湖

TA貢獻2003條經(jīng)驗 獲得超2個贊

第一個,你在for里面var i,它們是在同一個作用域的,因為var是一個函數(shù)作用域。i = 'abc';i++,這樣i就變成NaN了。NaN和數(shù)字比較,無論是什么比較,都為false。所以,只輸出一次。

第二個,let是塊級作用域,所以在for (let i = 0; ...)定義的i只在for的括號里有效,在塊內(nèi)是沒有效果的,所以let i = 'abc'是相當于重新定義了一個變量,是for代碼塊的塊級作用域的變量,只在for代碼塊里有效。所以執(zhí)行了三次。

第三個問題,你在console.log之后定義了let i,所以i在你調(diào)用的時候并沒有定義哈。參見上面一條。


查看完整回答
反對 回復 2018-12-14
  • 1 回答
  • 0 關注
  • 673 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號