专栏名称: 大前端艺术家
我是艺术家,WEB艺术家。
目录
相关文章推荐
今天看啥  ›  专栏  ›  大前端艺术家

【面试小题】闭包模拟块级作用域

大前端艺术家  · 公众号  ·  · 2019-01-15 17:01

文章预览

题目 已知数组 ["a", "b", "c", "d", "e"] ,编写代码,每过 1 秒打印一下数组中的值。 答案 ES5 var  arr = [ "a" ,  "b" ,  "c" ,  "d" ,  "e" ]; for  ( var  i =  0 ; i < arr.length; i++) {   ( function ( j )  {      var  item = arr[j];     setTimeout( function ()  {        console .log(item);     },  1000  * (i +  1 ));   })(i); } ES6 利用 ES6 中 let 块级作用域的特性。 var  arr = [ "a" ,  "b" ,  "c" ,  "d" ,  "e" ]; for  ( let  i =  0 ; i < arr.length; i++) {    const  item = arr[i];  // let | const   setTimeout( ()  =>  {      console .log(item);   },  1000  * (i +  1 )); } 思考 看题目很容易意识到这是在考 块级作用域 ,考点主要是 ES5 里没有块级作用域,但可以 用闭包来模拟块级作用域 。 一个普通的循环 for  ( var  i =  0 ; i 5; ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览