好久没有更新博客了,
最近公司赶项目,天天熬夜加班.........

今天公司里一个小伙伴,偶然间提到了ES6中的let 和 var 的区别,给她解释了半天,今天就但拉出来写一个总结,也算给我的小伙伴整理一下。

在ES6中var 和 let 用法都一样,为什么我们还要用let呢?
下面偶奏来说一说他们的区别;
举两个栗子大家就明白了:
用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 = 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</span>
说完了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
如果有什么地方说的不得体,欢迎大家指出;
var a =2 ;
console.log(a);//2
let b = 1;
let b = 2;
console.log(b);//(报错鸟)caught SyntaxError: Identifier 'a' has already been declared</span>
说完了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
如果有什么地方说的不得体,欢迎大家指出;
