<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Document</title>
	</head>
	<body>
		<script>
		var a  = 1;
		console.info(a);
		
		// const b=3
		const b =2;
		console.info(b)
		
		let c =4
		console.info(c)
		</script>
		
	</body>
</html>1.var 变量可以用window 点出来
例如:
var a = 100;
console.log(a,window.a);    // 100 100而,let 和const 不可以
let b = 10;
console.log(b,window.b);    // 10 undefined
const c = 1;
console.log(c,window.c);    // 1 undefined2. var 可以变量提升
什么是变量提升?,就是可以先使用,后声明
console.log(a); // undefined  ===>  a已声明还没赋值,默认得到undefined值
var a = 100;而,let 和 const 不可以
console.log(b); // 报错:b is not defined  ===> 找不到b这个变量
let b = 10;
console.log(c); // 报错:c is not defined  ===> 找不到c这个变量
const c = 10;
3.同一作用域下,var 可以声明同名变量,而let 和const 不可以
var a = 100;
console.log(a); // 100
var a = 10;
console.log(a); // 10
et a = 100;
let a = 10;
//控制台报错:Identifier 'a' has already been declared  ===> 标识符a已经被声明了。4.var 有跨域的可能
{
var a  = 1;
const b =2;	
}
console.info(a);
console.info(b)
//控制台报错==》
//1
//ncaught ReferenceError: b is not definedvar 正常获取 数据, const 报错,ES6以后script 更规范
5.const 声明以后必须赋值,声明后不能修改,而let 可以 const 是常量,let 是变量










