ES6(ECMAScript 6.0)六种声明变量的方法

4 篇文章 0 订阅

ES6与javascript的关系

ES6是javascript的一种规范,而javascript则是ES6的一种实现!

变量提升

所有的声明都会提升到作用域的最顶上去

console.log(a)//undefinde
var a = 1

=

var a
console.log(a)//undefinde
a = 1

ES6的六种声明变量的方法(let const function class import var)

let

{
  let a = 10;
  var b = 1;
}
//let 只在自己声明的代码块中有效
a // ReferenceError: a is not defined.
b // 1

let存在“暂时性死区”(temporal dead zone,简称 TDZ)
在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”

if (true) {
  // TDZ开始
  tmp = 'abc'; // ReferenceError
  console.log(tmp); // ReferenceError

  let tmp; // TDZ结束
  console.log(tmp); // undefined

  tmp = 123;
  console.log(tmp); // 123
}

const

const声明一个只读的常量。一旦声明,常量的值就不能改变
const实际上保证的,并不是变量的值不得改动,而是变量指向的那个"内存地址"所保存的数据不得改动

const foo = {};

// 为 foo 添加一个属性,可以成功
foo.prop = 123;
foo.prop // 123

// 将 foo 指向另一个对象,就会报错
foo = {}; // TypeError: "foo" is read-only
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值