var和let定义变量在循环中的不同
2017-11-13 16:02
316 查看
var arr = []; for(var i=0; i<10; i++) { arr[i] = function () { console.log(i); } } console.log(arr[5]()) //10 输出结果为10;就是作用域的问题。使用var 定义变量的时候,在整个循环中是全局的,每一次的循环实际上是为i赋值,循环一次赋值一次,10次循环完成,i最后的结果赋值就为10;取arr[5]的值,就是被最终赋值的i,就是10; 可以使用let定义变量i;let的作用局的块级作用局,即每次循环的i的作用域就是本次循环,下一次循环重新定义变量i;所以arr[5]()的输出就是5;
相关文章推荐
- let和var定义变量的区别
- js中let和var定义变量的区别
- [Wondgirl]ECMAScript6(ES6)(二)变量let、var和常量const的定义和区别
- js中let和var定义变量的区别
- c语言for循环变量i,i的定义位置不同会导致错误
- es5/6中变量定义(var/let/const)比较
- JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
- let和var定义变量的区别
- js中let和var定义变量的区别
- JavaScript中let和var定义变量的区别
- js中let和var定义变量的区别
- js中let和var定义变量的区别
- ts和js中let和var定义变量的区别
- js-变量定义关键字const,var,let
- 好久没写博客了,今天没事测试一下浏览器for循环顺序不同及定义变量位置不同的效率
- js中三种定义变量 const, var, let 的区别
- js中let、var、const定义变量的区别
- for循环绑定事件时,var和let声明循环变量的区别
- js中let和var定义变量的区别
- js中let和var定义变量的区别