var,let,cont声明变量的区别

1.var

-支持全局、函数作用域
-接受重复声明
-变量预解析
// 作用域
var aa=1;
function fn(){
	var  aa=10;
	console.log(aa); 
}
fn();// 输出的是10
console.log(aa); // 输出的是1
console.log(aa); // undefined,变量预解析
var aa=1;

2.let

-不接受重复声明
-不存在变量提升
-支持块作用域(es6新提出的概念)
console.log(aa); // 报错,没有变量预解析
let aa=1;

let aa=1;
let aa=10; // 报错,aa已经被声明过了

3.const

-特性同let
-用来声明常量,一旦声明不能更改
console.log(aa); // 报错,没有变量预解析
const aa=1;

const aa=1; 
const aa=10; // 报错,aa已经被声明过了
posted @ 2018-07-04 12:40  bonly-ge  阅读(943)  评论(0编辑  收藏  举报