首先,先来看看三者的区别
var 变量,函数作用域,能重复声明覆盖
let 变量,块作用域,不能重复声明覆盖
const 常量,不能重复声明覆盖
接下来我们具体来分析下其中的区别
- var
先看代码
var a = 1;
var a = 2;//不会报错
var b;
var c1 = 3;
var c = c1;
var m = {
a: 10, b: 20 };
var n = m;
n.a = 15;
function change() {
var a = 4;
var d = 5;
b=1;
c=6;
console.log('a:' + a);//可以输出a=4
console.log('b:' + b);//可以输出b=1
console.log('c1:' + c1);//可以输出c1=3
console.log('c:' + c);//可以输出c=6
console.log('d:' + d