美文网首页
ES6之var与let

ES6之var与let

作者: 奶酪凌 | 来源:发表于2018-06-08 16:08 被阅读0次

缘由:

学习小程序案例,结果案例是用es6写的,只能先去了解下es6(我js也不太好,总之一个字,差!),然后,那个教程中的第一章我就懵了。

相关资料:

  1. ES6之let(理解闭包)和const命令
  2. ECMAScript 6 入门
  3. 解除 for 循环时 var 和 let 定义变量的困惑

杂谈

其实,这个在解除 for 循环时 var 和 let 定义变量的困惑这篇文档中说的很清楚了,我只是记录下我从不理解到有点理解的过程。
在我刚刚接触的时候,我就只记住了一个词语:块级作用域。let表示块级作用域,var作用的是全局的。

var.png
let.png
我的问题是,为什么for循环里面var i=0的时候,不管里面数值多少(10以内的),都是输出10;但是当let i= 0,的时候,就能输出自己本身的?
我群友回答: 群友回答.png
我一直以为a[6] ()进入之后,i=6,a[6]=function(){console.log(i);} 因为var i= 0;所以,开始循环,最后输出i=10;如果是let i= 0;的时候,是块级作用域,只服务于该作用域,a[i]=function(){console.log(i);},直接输出本身值。
后来,我询问了我师父(我笨的我师父都无奈了......),师父直接写了另一种方法给我:
闭包.png
最后:var是作用于全局,只有一个i,等循环之后,一步一步增加,最后i=10;但是let是块级作用域,不增加,只作用于自己,要得到i,只作用在一个for(){}上,输出自己的值。
对比.png
最后附上阮一峰老师的说明: image.png

相关文章

  • let与const

    let用法 ES6新增了let命令,用法与var类似,主要用于声明变量,且逐渐代替var,与var的区别为,其声明...

  • ES6新增命令:let

    let的介绍 let是ES6新增的命令。作用:声明变量。类似于:var。与var的区别:使用let声明的变量,只在...

  • let 和 const 命令

    ES6学习笔记1、let命令ES6中新增了let,用于声明变量,与var类似,但let声明只是在其block(块)...

  • javaScript中var于let区别

    ES6引入let关键字,在JS中var 与let都是用来声明变量,var没有块级作用域,let有。let因为有了块...

  • ES6基础—let与var/const/对象字面量的增强写法

    为了弥补JavaScript中var的缺陷,所以在ES6中有了let let与var的区别 1.let定义的变量存...

  • ES6之var与let

    缘由: 学习小程序案例,结果案例是用es6写的,只能先去了解下es6(我js也不太好,总之一个字,差!),然后,那...

  • 2019年前端面试题-03

    let与var的区别? Let为ES6新添加申明变量的命令,它类似于var,但是有以下不同: 1、var声明的变量...

  • ES6基础知识

    let const es6 提供了新的声明方式代替以前的 var let construction var不支...

  • ES6特性学习(一)

    本篇对ES6的let、const进行了学习和整理,以及与var做一下简单的对比。 let命令 let是ES6中新增...

  • Let & Const

    let 命令? Es6 里面新添加了一个 let 命令,是用来声明变量的,类似于 var,但是与 var 不同的是...

网友评论

      本文标题:ES6之var与let

      本文链接:https://www.haomeiwen.com/subject/hfhasftx.html