美文网首页
ES6 let命令声明变量

ES6 let命令声明变量

作者: 前白 | 来源:发表于2020-11-16 10:59 被阅读0次

ES6 中新增了 let 命令,可以用于声明变量。下面我们就一起来看一下 let 命令的使用。

使用let声明变量

let 命令是 ES6 中新增的用于声明变量的一个命令,声明变量时的用法和 JavaScript 中的 var 类似。

示例:

例如下面我们使用 let 命令来声明变量:

let a = 10;
let b = 20;
let c = 30;

let 声明的变量只在代码块内有效

let 命令的使用虽然和 var 类似,但是两者还是有区别的,例如使用 let 声明的变量,只在 let 所在的代码块内有效。这是什么意思呢,下面我们通过一个例子来讲解一下。

示例:

例如我们在一段代码块中同时使用 letvar 来声明一个变量,然后在代码块外使用这个变量:

{
    var a = 10;
    let b = 20;
}
console.log(a); 
console.log(b);

当我们我们执行这段代码时,输出结果会报错,下面为错误提示:

ReferenceError: b is not defined

这个错误告诉我们,变量 b 没有被声明,但是我们明明在 {} 中声明了变量 b ,这表示 let 声明的变量只在它所在的代码块有效,在代码块外使用变量 b 会报错。

let不允许重复声明变量

let 命令和 var 命令还有一个不同就是,let 命令只能声明同一个变量一次,而 var 可以声明一个变量多次。

示例:

例如我们使用 var 声明变量 a 两次:

var a = 1;
var a = 2;
console.log(a);

执行代码后输出结果为 “2”,这表示当声明一个变量多次时,后面会覆盖前面的。

接着我们再试一下使用 let 声明变量 a 两次:

let a = 1;
let a = 2;

当执行代码时会输出如下所示错误提示:

SyntaxError:Identifier 'a' has already been declared

其中 SyntaxError 表示这个一个语法错误,告诉我们变量 a 已经被声明,不能再次被声明。

let不支持变量提升

let 不存在变量提升的现象,而 var 命令会变量提升。变量提升是什么意思呢,就是变量可以在声明之前使用,值为 undefined

示例:

例如我们先使用变量 v,再通过 var 声明这个变量,执行代码后会输出 undefined

console.log(v);
var v = 100;

而如果先使用变量 l,再通过 let 命令声明这个变量:

console.log(l);
let l = 100;

当执行代码后会报错,报错内容如下所示:

ReferenceError: Cannot access 'l' before initialization

这表示通过 let 声明的变量,在被声明之前是不允许使用的,这就是说不存在变量提升的现象。

暂时性死区

当一个块级作用域内存在 let 命令时,它所声明的变量就“绑定”(binding)了这个区域,不再受外部的影响。

示例:

例如下面这段代码:

var a = 10;  // 声明全局变量a

if (true) {
  a = 20;  
  let a;     // 在代码块中声明局部变量a,此时变量 a 绑定了这个代码块
}

执行代码后会报如下所示:

ReferenceError: Cannot access 'a' before initialization

这段代码表示,如果我们在一个代码块中使用 let 声明一个变量,那么就形成了封闭作用域,就形成了封闭作用域,既然在之前声明了全局变量也一样。

所以要注意,如果使用 let 命令在代码块内声明变量,那么在声明变量之前,该变量都是不可用的。这在语法上称为 “暂时性死区”。

链接:https://www.9xkd.com/

相关文章

  • let 和 const 命令

    ES6 let 命令 ES6新增了 let 命令,用于声明变量,其用法类似于varlet 命令声明的变量仅仅在其所...

  • let与const

    let 1、ES6 新增了 let 命令,用于声明变量。其用法类似于 var ,但是所声明的变量只在 let 命令...

  • 第1章 let和const命令

    基本用法 es6新增了let和const命令。let用于声明变量,用法与var类似,不过let命令声明的变量只作用...

  • let和const命令

    1、let命令 ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在...

  • Let var const

    let 命令 ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的...

  • ES6入门--let和const命令

    let命令 基本用法 ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令...

  • 3.let和const命令

    1.let命令 基本用法ES6新增了let命令,用来声明变量。它的用法类似var,但是所声明的变量,只在let命令...

  • ES6->let

    let 命令 ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的...

  • ECMAScript let和const命令

    let命令 ES6新增了 let 命令,用来声明变量。它的用法类似于 var ,但是所声明的变量,只在 let 命...

  • ES6-let

    let命令:基本用法ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所...

网友评论

      本文标题:ES6 let命令声明变量

      本文链接:https://www.haomeiwen.com/subject/mcmabktx.html