- 除了函数外,js没有块级作用域
- 作用域链:内部可以访问外部变量,但是外部不能访问内部变量,优先找内部再找外部,注意内部变量提升
- 声明变量用var还是window
- js变量提升机制
- 优先级:声明变量 > 函数声明 > 参数 > 变量提升
console.log(a)
if(false){
var a = 10
}
console.log(a)
var a = 10
function test(){
console.log(a)
var a = 20
console.log(a)
}
test()
function test(){
var a = 10
function a(){}
console.log(a)
}
test()
function test(){
var a = 10
var a = function () {}
console.log(a)
}
test()
function test(){
console.log(a)
var a = 10
function a() {}
}
test()
function fun (a) {
console.log(a)
var a = 10
}
fun(100)
function fun (a) {
console.log(a)
function a(){}
}
fun(100)
function fun(){
a = 10
console.log(a)
var a = 20
console.log(20)
}