ES6语法

let 和 const

一.let

`let`在ES6中来声明变量
它与之前的`var`的区别
  1. let只作用在块级作用域
{
    let a = 10;
    var b = 20;
}
console.log(a); //a is not defined
console.log(b); //20
  1. let没有变量提升let它所声明的变量一定在声明后使用,否则报错
//var命令会发生变量提升现象,即变量可以在声明之前使用,值为undefined。
//这种现象多多少少是有些奇怪的,变量应该在声明语句之后才可以使用。
//var的情况
console.log(c);//输出undefined
var c = 30;


//let的情况
console.log(c);// 报错ReferenceError
let c = 30;

  1. let不能重复声明.
let c = 10;
let c = 30;
console.log(c); //报错

function func(arg) {
  let arg; // 报错
}
  1. 暂时性死区
  • 在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法 上,称为暂时性死区(temporal dead zone,简称 TDZ)
  1. let的好处:
  • 解决循环计数问题
    `
//解决方式一:使用闭包
var arr = []
for(var i = 0; i < 10; i++){
    arr[i] = (function(n){
        
        return function(){
            return n;
        }
    })(i)
}
//解决方式二:使用let声明i

var arr = []
for(let i = 0; i < 10; i++){
    arr[i] = function () {
        return i;
    }
}

`

  • 不会污染全局变量
let a = 10
console.log(a);//10
console.log(window.a);//并不是10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值