JavaScript ES6中var、let、const分别什么时候使用?
迷茫
迷茫 2017-04-11 12:28:02
[JavaScript讨论组]

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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(9)
大家讲道理

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

PHPz

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

伊谢尔伦

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

PHPz

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

阿神

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

"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);

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

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

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

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

怪我咯

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

怪我咯

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

PHP中文网

http://www.cnblogs.com/ziyunf... 搬运工

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号