// var的缺点
// 原理1: var会被函数作用域挡住
var myname = "12345"
function my() {
var myname = '234567'
}
my()
console.log(myname)//12345
// 原理2:var会被函数作用域挡住,不会被块级作用域{}挡住
var myname = "12345"
function my() {
if(true){
var myname = '234567'
}
console.log('1',myname)//234567 (let的话12345)
}
my()
console.log(myname)//12345
// 缺点1:var容易变量提升 变成Underfind 而let不会变量提升
var myname = "12345"
function my() {
console.log('myname',myname) //undefined (let的话12345)
if(true){
var myname = '234567'
}
}
my()
// 缺点2:容易污染整个函数作用域
var myname = "12345"
function my() {
if (true) {
var myname = '234567'
}
console.log('myname11', myname) //234567 (let的话12345)
if (true) {
console.log('myname22', myname) //234567 (let的话12345)
}
}
my()
08-26
2176