美文网首页
es6之 let、var 、const的区别

es6之 let、var 、const的区别

作者: JennyWeb | 来源:发表于2020-07-29 10:39 被阅读0次

es6语法有很多新增,从最简单最常用的let const var的区别来说把!

1、var 声明的变量会挂载至window上,let 和 const不会

var a = 1;
console.log(a,window.a);    // 1  1

let b = 2;
console.log(b,window.b);    // 2 undefined

const c = 3;
console.log(c,window.c);    // 3 undefined

2、var声明变量存在变量提升,let和const不存在变量提升

console.log(a); // undefined  ===>  a已声明还没赋值,默认得到undefined值
var a = 10;
console.log(b); // 报错:b is not defined  ===> 找不到b这个变量
let b = 10;
console.log(c); // 报错:c is not defined  ===> 找不到c这个变量
const c = 10;

3、let和const声明形成块作用域

if(1){
    var a = 1;
    let b = 10;或者const c = 20;
}

console.log(a); // 1
console.log(b)  // 报错:b is not defined  ===> 找不到b这个变量
console.log(c)  // 报错:c is not defined  ===> 找不到c这个变量

4、同一作用域下let和const不能声明同名变量,而var可以

var a = 1;
console.log(a); // 1
var a = 10;
console.log(a); // 10

let a = 1;
let a = 10;
//  控制台报错:Identifier 'a' has already been declared   标识符a已经被声明了。

5、let、const会暂存死区 (原因:1、全局变量和局部变量同时存在,局部变量优先。2、没有变量提升) var不会

var a = 100;
    if(true){
      a = 90;
      let a = 99;
      console.log(a); // Cannot access 'a' before initialization 不能在初始化之前访问“a”
    }

6、const

  • 1、一旦声明必须赋值,不能使用null占位。

  • 2、声明后不能再修改

  • 3、如果声明的是复合类型数据,可以修改其属性

const list = [];
list[0] = 'a';
console.log(list);  // ['a']

相关文章

  • react 入门基础(一)之ES6

    ####ES6 let const var 三者的区别 ### 1. let const 不能重复声明变...

  • javascript碎片知识000

    const let var 3者的区别。 const 和 let 为es6新增的定义变量的关键字。 var存在...

  • 总结一下前端常见javascript基础面试题:

    1.var ,let 和const的区别: let和const是es6新增的语法, let和var都可以定义变量,...

  • (JS)

    ES6 let、const和var的区别 let和const声明变量不存在变量提升 let和const不能重复声明...

  • js常见知识点--第二篇

    一、var 、let 、const的区别 var是ES5提出的,let和const是ES6提出的。var不存在块级...

  • es6总结一

    es6基础 let和const命令 let和const用于声明变量let跟var的区别 1、let定义过的变量不能...

  • Android菜鸟学习js笔记 一

    一、var,const,let区别? var 变量,const 常量,let块级变量。

  • es6

    1、let 和const(定义变量) (1)var 、let 、const的区别 a、作用域区别var 变量声明会...

  • JS中var、let、const区别

    在javascript中有三种声明变量的方式:var let const。let var const的区别?var...

  • js中const,var,let区别

    在javascript中有三种声明变量的方式:var let const。let var const的区别?var...

网友评论

      本文标题:es6之 let、var 、const的区别

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