有几个小知识点。
(1)局部变量的优先级高于同名的全局变量
var a = 'apple'//全局变量 |
function QQ(){ |
var a = 'apple2'// 同名的局部变量 |
return a; |
} |
console.log(QQ())// apple2 |
(2)因为函数是可以嵌套的,所以会出现几个局部变量作用域嵌套情况。
var a = 'apple' | |
function QQ(){ | |
var a = 'apple2'; | |
function WW(){ | |
var a = 'apple3' | //因为嵌套作用域内的局部变量 |
return a; | //返回当前作用于的值 |
} | |
return a; | |
} | |
console.log(QQ()); | //apple2 |
函数的作用域;
js中函数作用域指函数内声明的所有变量都可见的,这意味着变量声明之前就可以使用了,这个叫做声明提前;
var a = 1;
function f(){
console.log(a);//是‘undefined’
var a = 2;//变量在这里赋值,单变量在整个函数内是有定义的。
console.log(a);// 输出2
}