首页 > JavaScript ES6中var、let、const分别什么时候使用?

JavaScript ES6中var、let、const分别什么时候使用?

JavaScript ES6中var、let、const分别什么时候使用?


这是我做的笔记,把一个个注释解开封印,然后看下控制台报错信息,能加深了解。

"use strict";
// error:Block-scoped declarations (let, const, function, class) not yet supported outside strict mode,一些ES6里声明的方法必须在严格模式上才能使用,不然会报此错误

const a=1;
// const a=2;
// error:Identifier 'a' has already been declared
// a=2;
// error:Assignment to constant variable.
// 【const是常数变量,即一般在require一个模块的时候用或者定义一些全局常量,一旦定义,无法更改,无法重复赋值】
document.write('a: '+a+'<br />');

let b=1;
// let a=2; 
// error:Identifier 'a' has already been declared
// 【let 变量,块作用域,不能重复声明覆盖,限制了变量的作用域,保证变量不会去污染全局变量,所以尽量将var改为用let。】
b=2;
document.write('b: '+b+'<br />');

var c=1;
var c=2;
c=3;
document.write('c: '+c);

不过用了之后要了解下严格模式下的写法,要不然一个坑接着一个坑,偏偏还在填完一个坑之后乐一下继续填下一个坑,为什么不选择一次跳过一大块坑,让以后出现的坑少一点呢✧(≖ ◡ ≖✿)


const一旦定义,无法更改,let定义块级变量,他们都是无法重复声明的,会报错,而var可以覆盖之前的声明


能用 const 优先用 const,const 的特点只一但定义就不可变更(仅指不能重新赋值)
不能用 const 优先用 let,最直观的,let 可以避免一些 for 循环+闭包的问题
剩下的用 var


const 常量
let 变量,块作用域,不能重复声明覆盖
var 变量,函数作用域,能重复声明覆盖


const一般在require一个模块的时候用或者定义一些全局常量。而let是限制了变量的作用域,保证变量不会去污染全局变量。所以尽量将var改为用let。


  1. letconst在任何情况下都优于var

  2. const一旦定义就不可改变

  3. 大部分情况下const的出场率比let高很多,所以一般建议默认使用const,除非一定要改变变量的值,再使用let


赋值之后不会再做修改了就用const,如果后边还会修改就用let,不建议使用var


es6里面不建议使用var了,因为var定义的变量没有块级作用域,还会出现变量提升的情况,这样经常会导致你意想不到的错误,而let就不会这样,const是定义那些不可以被重新赋值的变量,let是定义普通的变量。

【热门文章】
【热门文章】