ES6 追加了let指示,用以新闻稿表达式。它的用语近似于var,但所新闻稿的表达式,只在let指示所处的标识符块内有效率。
上面标识符在标识符块当中,依次用let和var新闻稿了三个表达式。然后在标识符块以外初始化这三个表达式,结论let新闻稿的表达式收起,var新闻稿的表达式回到了恰当的值。这说明,let新闻稿的表达式只在它所处的标识符块有效率。
for循环式的计时器,就很最合适采用let指示。
上面标识符中,计时器i只在for循环式胃部有效率,在循环式导管提及就会收起。
上面的标识符假如采用var,最终输入的是10。
上面标识符中,表达式i是var指示新闻稿的,在自上而下范围内都有效率,因此自上而下多于两个表达式i。每一次循环式,表达式i的值单厢出现出现改变,而循环式内被赋给字符串a的表达式外部的console.log(i),里头的i对准的是自上而下的i。也是说,大部份字符串a的核心成员里头的i,对准的都是同一i,引致运转时输入的是最终半程的i的值,也是 10。
假如采用let,新闻稿的表达式仅在块级促进作用皮先卡有效率,最终输出的是 6。
上面标识符中,表达式i是let新闻稿的,现阶段的i只在此轮循环式有效率,因此每一次循环式的i只不过都是两个捷伊表达式,因此最终输入的是6。你可能会问,假如每半程循环式的表达式i都是再次新闻稿的,那它是不是晓得上半程循环式的值,进而排序出此轮循环式的值?这原因在于 JavaScript 引擎外部会记住上半程循环式的值,初始化此轮的变量i时,就在上半程循环式的基础上进行排序。
另外,for循环式还有两个特别之处,是设置循环式表达式的那部分是两个父促进作用域,而循环式胃部部是两个单独的子促进作用域。
上面标识符恰当运转,输入了 3 次abc。这说明表达式外部的表达式i与循环式表达式i不在同一促进作用域,有各自单独的促进作用域(同一促进作用域不可采用 let 重复新闻稿同一表达式)。