栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScript``let''的说明和for循环的块作用域

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript``let''的说明和for循环的块作用域

这只是ES6的语法糖吗?

不,它不仅仅是语法糖。详细资料埋在§13.6.3.9中

CreatePerIterationEnvironment

这如何运作?

如果

let
for
语句中使用该关键字,它将检查其绑定的名称,然后

  • 使用以下名称创建一个新的词法环境:a)初始化程序表达式b)每次迭代(以前是评估增量表达式)
  • 将具有这些名称的所有变量的值从一个复制到下一个环境

您的循环语句

for (var i = 0; i < 10; i++) process.nextTick(_ =>console.log(i));
简化为一个简单的

// omitting braces when they don't introduce a blockvar i;i = 0;if (i < 10)    process.nextTick(_ => console.log(i))    i++;    if (i < 10)        process.nextTick(_ => console.log(i))        i++;        …

while

for (let i = 0; i < 10; i++) process.nextTick(_ => console.log(i));

does “desugar” to the much more complicated

// using braces to explicitly denote block scopes,// using indentation for control flow{ let i;  i = 0;  __status = {i};}{ let {i} = __status;  if (i < 10)      process.nextTick(_ => console.log(i))      __status = {i};}   { let {i} = __status;      i++;      if (i < 10)          process.nextTick(_ => console.log(i))          __status = {i};    }   { let {i} = __status;          i++;          …


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517803.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号