ES6常用特性(1)——let和const

ES常用特性(1)——let和const

ES6概念

国际化标准组织 ECMA发布了规定浏览器脚本语言的标准,即 ECMAScript。
ECMAScript 6.0(简称ES6)新的Javascript语法标准,在2015年6月正式发布。ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。实际上JS是ES的扩展语言。


let

ES6新增了let命令,用来声明变量,并且只在let命令所在的代码块内有效。

  • let声明的变量只在 {} 代码块内有效。
{
  let name = 'ZhangSan';
}
console.log(name);//Uncaught ReferenceError: name is not defined
  • let 存在变量提升,但是由于暂时性死区的存在使let不能在声明之前被使用,如果使用则会报错。
console.log(name); //Uncaught ReferenceError: name is not defined
let name = 'LiSi';
  • let不允许在相同作用域内,重复声明同一个变量, 不能在函数内部重新声明参数。
let name = 'ZhangSan';
let name = 'LiSi'; //Uncaught SyntaxError: Identifier 'a' has already been declared

const

ES6新增了const命令,用来声明一个只读的常量

  • const声明时必须设置初始值。
const name; //Uncaught SyntaxError: Missing initializer in const declaration
  • const声明的成员不能被修改。
const name = 'ZhangSan';
name = 'LiSi';//Uncaught SyntaxError: Identifier 'name' has already been declared
  • const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。

补充

暂时性死区
ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)

var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值