您的位置:首页 > 其它

ES6 var和let和const 的区别

2017-12-11 19:12 615 查看

在ES6中var 和 let 用法都一样,为什么我们还要用let呢?

今天偶跟小伙伴聊天,哎呀,偶俩都感慨互联网发展的太快了,更新换代的炒鸡快,小伙伴感觉脑子都不够用了

,偶然间提到了ES6中的let 和 var 的区别,然后感觉还很模糊,然后不知道咋表达,今天回来就想把它整理一下;
下面偶奏来说一说他们的区别;


举两个栗子大家就明白了:

用var 声明的变量

if(true){
var a = 1;
console.log(a);//1 可以访问到
}
console.log(a);//1 可以访问到

用let声明的变量
if(true){
let a = 1;
console.log(a);//1 可以访问到
}
console.log(a);// 不可以


上面的这两个栗子,我们可以看出:
用var 声明的a 在包裹它的作用域空间外(代码块外)可以访问到;
而let 声明的a 在包裹它的作用域空间外(代码块外)不可以访问到;

还有就是let不可以同名,而var 可以同名(只不过前一个声明的会被覆盖);
举栗子:
var a = 1;
var a =2 ;
console.log(a);//2

let b = 1;
let b = 2;
console.log(b);//(报错鸟)caught SyntaxError: Identifier 'a' has already been declared


说完了let 和 var 的区别,接下来说说 const ;

const 是一个常量,只能声明一次,而且不能重复声明,而且不能更改;

const a = 1;
const a = 2;
console.log(a);//报错


但是如果定义的常量是一个对象,我们去修改这个常量里的值 不会报错;

const a ={
b:10
}
a.b=11;
console.log(a.b)//11


如果有什么地方说的不对,欢迎大家指出;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: