ES6的新增语法之let和const

let

let是ES6中新增的用于声明变量的关键字,它声明的变量只在所处于的块级有效。
块级作用域的意思就是大括号{ }包含的范围。

注意:使用let关键字声明的变量才具有块级作用域,使用var声明的变量不具备块级作用域特性。

使用let的好处:
1.防止内部变量覆盖外部变量。
2.防止循环变量变成全局变量。(每次循环都会产生一个块级作用域)

使用let关键字声明的变量只能先声明再使用,不存在变量提升

console.log(a); // a is not defined   
let a = 20; 

使用let关键字声明的变量具有暂时性死区的特性,let声明的变量会和块级区进行绑定,不会受外部同名变量影响。

 var tmp = 123; 
 if (true) {  
     tmp = 'abc'; //会报错说tmp未定义
     let tmp;  
 }  

const

作用:声明常量,常量就是值(内存地址)不能变化的量。
如果声明的常量是基本数据类型,那么它的值是不可以更改的。如果声明的常量是复杂数据类型,比如说对象,那么这个常量就一定要指向这个对象,但是对象里面的属性值是可以更改的。

const声明的常量具有块级作用域特点。

注意:const声明常量时候必须赋值。

const PI; // Missing initializer in const declaration 

一般函数定义、数学中恒定不变的值用const。
JavaScript解析引擎不用实时监控const值的变化,所以效率要比let关键字效率高。

let、const、var 的区别

  1. 使用 var 声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象。
  2. 使用 let 声明的变量,其作用域为该语句所在的代码块内,不存在变量提升。
  3. 使用 const 声明的是常量,在后面出现的代码中不能再修改该常量的值。
    var | 函数作用域 | 变量提升 | 值可更改
    let | 块级作用域 | 不存在变量提升 | 值可更改
    const | 块级作用域 | 不存在变量提升 | 值不可更改
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值