ES6-主要知识点(一)

总结来自于阮一峰老师

一. let 和 const

1.let

ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。

1.有块级作用域( if for 等 {} 算作代码块)

{
    let a = 10;
    var b = 1;
}
    console.log(a); // 报错
    console.log(b); //1

但是 如果在{}里面打印a 就会返回正确的值;

这就说明,let声明的变量只在它所在的代码块有效。

2.不存在变量提升,有暂时性死区

//var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined。
// var 的情况
console.log(foo); // 输出undefined
var foo = 2;
​
//变量bar用let命令声明,不会发生变量提升。这表示在声明它之前,变量bar是不存在的,这时如果用到它,就会抛出一个错误。
// let 的情况
console.log(bar); // 报错
let bar = 2;
//只要块级作用域内存在let命令,它所声明的变量就“绑定”这个区域,不再受外部的影响。
var tmp = 123;
​
if (true) {
  tmp = 'abc'; // 报错
  let tmp;
}
在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”

3.不能重复声明

// 报错
function func() {
  let a = 10;
  var a = 1;
}
​
// 报错
function func() {
  let a = 10;
  let a = 1;
}
function func(arg) {
  let arg;
}
func() // 报错
​
function func(arg) {
  {
    let arg;
  }
}
func() // 不报错

4.声明不会挂在到window上

let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。

2.const

1.有块级作用域 (if for 等 {} 算作代码块)

2.不存在变量提升,有暂时性死区

3.常量不能修改

const声明一个只读的常量。一旦声明,常量的值就不能改变。
      const  a = 3.1415;
​
      //    a = 3;      // 报错
      console.log(a);   // 3.1415
    //上面代码表明改变常量的值会报错。

4.声明不会挂在到window上

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值