console.log(a);
var a = 10;
var a = 10;
var a = 20;
var name = 20;
console.log(window.name);
function print(){
a = 30;
}
console.log(a);//这里会报错,显示a未定义
let a = 20;
let a = 20;
let a = 30;//a is already delcare!
let name = 20;
console.log(window.name);//undefined;
此处形成了闭包,所以导致function拿到的i是同一个,所以每次打印的都是10
var arr = [];
for(var i = 0; i < 10; i++){
arr.push(function(){
console.log(i);
})
}
arr[1]();//10
arr[2]();//10
解决方案:将var的变量i换成let声明的变量i
var arr = [];
for(let i = 0; i < 10; i++){
arr.push(function(){
console.log(i);
})
}
arr[1]();//1
arr[2]();//2
let a = 10;
{
console.log(a);
let a = 20;
}
const A = 20;
A = 30;
1.如果定义的是引用值,则可以修改
let obj = {
name: 'zhangsan'
}
const Role = obj;
Role.name = "lisi";