美文网首页
ES6 let关键词

ES6 let关键词

作者: Lee拔山兮 | 来源:发表于2020-08-31 14:54 被阅读0次

let

let是ES6定义的新关键词,用于声明变量,例如:

let a = 1
console.log(a) //1

let声明的变量不能重复声明,例如:

let a = 1 
let a = 2 //Identifier 'a' has already been declared

let也可以不用初始化,例如:

let a;
console.log(a)// undefined

let是块级作用域,可以解决for循环中变量泄露的问题,例如:

var arr = []

for(var i = 0; i < 10; i++) {
    arr.push(function() {console.log(i)})
}

arr.forEach(function(arr){
    arr() //打印10次10
})

上面为什么输出10次10呢?因为为变量 i 在循环的每次迭代中都被共享了,意味着循环内创建的那些函数都拥有对于同一 变量的引用。在循环结束后,变量 i 的值会是 10 ,因此当 console.log(i) 被调用时, 每次都打印出 10 。

现在用let改写这个例子:

var arr = []

for(let i = 0; i < 10; i++) {
    arr.push(function() {console.log(i)})
}

arr.forEach(function(arr){
    arr() //0-9
})

为什么let可以解决这个问题呢?因为在每次迭代中,let都会创建一个新的同名变量并对其进行初始化。在循环中 let 声明每次都创建了一个新的 i 变量,因此在循环内部创建的函数获得了各自的 i 副 本,而每个 i 副本的值都在每次循环迭代声明变量的时候被确定了。

相关文章

  • ES6 let关键词

    let let是ES6定义的新关键词,用于声明变量,例如: let声明的变量不能重复声明,例如: let也可以不用...

  • JS中的this

    这篇文章不讨论es6的let和const关键词,它们比较特殊,使用let和const关键词声明的变量和常量,会形成...

  • ES6之 let 和 const 命令

    ES6 之 let 和 const 命令 1、let 命令 1.1、基本用法 ES6 新增了let命令,用来声明变...

  • ES6详解1

    es6语法 es6新增命令 let let 类似于 var 用来声明变量 ,let 命令所在的 代码块内才生效{l...

  • ES6中的let和const命令

    ES6中的let和const命令 let命令 ES6 新增了let命令,用来声明变量。它的用法类似于var,但是...

  • js 变量提升的原理

    众所周知,JavaScript 中存在变量提升的问题,在 ES6 引入的新关键词 let 可以很方便的解决这个问题...

  • let 和 const 命令

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

  • ES6学习笔记

    VSCode调试ES6:配置方法 一、let & const 关键字 1.1 let & var 对比 let 声...

  • ES6特性学习(一)

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

  • ES6入门基础

    ES6入门基础 一.let & const 1.基本用法 es6新增 let命令,用来申明变量,用法类似于var,...

网友评论

      本文标题:ES6 let关键词

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