ES6 中 let和const命令

15 篇文章 0 订阅

ES6 中 let和const命令

一,let命令

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

  • 特点一:使用let关键字声明的变量具有块级作用域,声明的变量只在所处于的块级有效 (块级作用域:在大括号中产生的作用域)
 if (true) {
             let num = 100;
             var abc = 200;
         }
         console.log(abc);        //200
         console.log(num);        //error:num is not defined

let声明的num变量,只存在于块级作用域(在大括号中产生的作用域)因此报错。

由于这个特性,let可以用来防止循环变量变成全局变量 例如:循环中的计数器,当循环结束时,计数器就没必要存在了

for (var i = 0; i < 5; i++) {
         }
         console.log(i);            //5
         for (let j = 0; j < 5; j++) {
         }
         console.log(j);            //error: j is not defined

用let声明的计数器j,只存在for循环中的块级作用域,不会成为全局变量,因此报错。

  • 特点二:let声明的变量,不存在变量提升,只能先声明后使用
         console.log(a);               //a is not defined
         let a = 20;

上面这段代码,由于let声明不存在变量提升,所以会报错

  • 特点三:let声明的变量,具有暂时性死区特性
         var tmp = 10;
         if (true) {
             console.log(tmp);            //tmp is not defined
             let tmp = 20;
         }

上面代码中,存在全局变量tmp,但是块级作用域内let又声明了一个局部变量tmp,导致后者绑定这个块级作用域,所以在let声明变量前,对tmp赋值会报错。

  • 特点四:let不允许在相同作用域内,重复声明同一个变量。
// 报错
function func() {
  let a = 10;
  var a = 1;
}

// 报错
function func() {
  let a = 10;
  let a = 1;
}

二,const命令

1,基本用法
const声明一个只读的常量。一旦声明,常量的值就不能改变。
2,特点

  • 特点一:一旦声明,常量的值就不能改变
const PI = 3.1415;
PI // 3.1415

PI = 3;
// TypeError: Assignment to constant variable.

上面代码表明改变常量的值会报错。

  • 特点二:const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。
const foo;
// SyntaxError: Missing initializer in const declaration

上面代码表示,对于const来说,只声明不赋值,就会报错。

  • 特点三:const的作用域与let命令相同:只在声明所在的块级作用域内有效。
if (true) {
  const MAX = 5;
}

MAX // Uncaught ReferenceError: MAX is not defined
  • 特点四:const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。
if (true) {
  console.log(MAX); // ReferenceError
  const MAX = 5;
}

上面代码在常量MAX声明之前就调用,结果报错。

  • 特点五:const声明的常量,也与let一样不可重复声明。
var message = "Hello!";
let age = 25;

// 以下两行都会报错
const message = "Goodbye!";
const age = 30;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值