<!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 undefined
2. 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 defined
var 正常获取 数据, const 报错,ES6以后script 更规范
5.const 声明以后必须赋值,声明后不能修改,而let 可以 const 是常量,let 是变量