ES6的let与var区别

原创 2018年04月17日 16:50:36

1.let是块级作用域,var不是

{
     let a = 1;
     var b = 2;       
}
console.log(a); // ReferenceError: a is not defined
console.log(b); // 2

2.let不存在变量提升

console.log(foo); // 输出undefined
console.log(bar); // 报错ReferenceError
var foo = 2;
let bar = 2;

3.存在暂时性死区

只要在块级作用域中存在let命令,它所声明的变量就“绑定”在这个区域,不受外部影响

var tmp = 123;
if (true) {
tmp = 'abc'; // ReferenceError
let tmp;
}

上面的代码中,虽然声明了全局的变量tmp,但是在块级作用域中也声明了tmp变量,所以导致tmp被绑定在块级作用域中,因此在声明之前访问tmp,会报ReferenceError的错。
4.let不能重复申明
但是var可以,而且ar后面声明的值能覆盖前面的值。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZYY88886666/article/details/79977224

ES6/7 + Babel 编译器

ES6/7 + Babel 编辑器
  • 2017年03月24日 15:40

ES6中let与var的区别

通过var定义的变量,作用域是整个封闭函数,是全域的 。通过let定义的变量,作用域是在块级或是子块中。 for (let i = 0; i < 10; i++) { // ... }consol...
  • zuiziyoudexiao
  • zuiziyoudexiao
  • 2017-08-08 11:44:41
  • 5770

var与ES6中const、let声明的变量的区别

好久以前的研究,今天再来回顾一下。 首先我们比较一下使用var声明的变量和不使用var声明的变量的区别: 使用var声明的变量声明前调用,那么该变量的值为undefined;不使用var声明的变量...
  • qq_22855325
  • qq_22855325
  • 2017-06-02 14:27:18
  • 1083

Javascript ES6 let 和 var 比较

JavaScript ES6 的 let 和 var 的比较     在JavaScript 1.7中, let 关键词被添加进来, 我听说它声明之后类似于”本地变量“, 但是我仍然不确定它和 关键...
  • lcstrive
  • lcstrive
  • 2015-01-26 10:21:15
  • 19779

ES6 中的let、const与var的区别

首先需要明确的是let、const、var都是用来定义变量的  在ES6之前,我们一般都用var来定义变量,例如 : function test(){ var i=1; conso...
  • hsany330
  • hsany330
  • 2016-11-17 14:34:03
  • 9953

自学-ES6篇-let和conts命令

let和const命令
  • wh814071912
  • wh814071912
  • 2016-10-03 14:40:44
  • 1029

ES6 let和const详解及使用细节

ES6之前javascript只有全局作用域和函数作用域,所以经常会遇到变量提升了或者使用闭包的时候出错的问题。 所有a[i]都会输出10; var arr=[]; for (var i=0;i...
  • qq_28506819
  • qq_28506819
  • 2017-04-27 16:14:00
  • 384

es6:let和var的区别

let和var的区别基本用法ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。{ let a = 10; var b = 1; ...
  • en_hengheng
  • en_hengheng
  • 2017-07-26 14:27:49
  • 157

node.js学习(十二、ES6新特性:var与let区别)

1.let的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。var定义的变量为全局变量。function f1() { let n = 5; if (true) { ...
  • u011768758
  • u011768758
  • 2017-03-18 20:48:56
  • 517

ES6知识整理(一)--- let/const/箭头函数

早在17年初就读了《ES6 标准入门》并在博客上做了笔记(《ES6 标准入门》读书笔记),工作中也有用到一些。一年后再回过头来看这些知识,又跟初看的时候的感觉完全不同了。对很多新特性的好处有了更具体的...
  • Creabine
  • Creabine
  • 2018-01-09 20:47:53
  • 92
收藏助手
不良信息举报
您举报文章:ES6的let与var区别
举报原因:
原因补充:

(最多只允许输入30个字)