全局变量和局部变量
如果在函数内定义变量时没有使用 var
相当于在函数外声明了一个全局变量,在函数内进行赋值
function f1() {
num1 = 100;
var num2 = 200;
}
f1()
console.log(nu1); //num1为100
console.log(num2);//num2 未定义
函数内外有同名的变量,优先使用内部变量
var num = 100;
function f1() {
var num = 200;
console.log(num);//200
}
f1();
函数内使用全局变量
var num = 100;
function f1() {
num = 200;//这里的num就是全局变量
console.log(num);//200
}
f1();
console.log(num);//200
最内层作用域在使用变量时,如果自己没有则向外层查找,如果外层没有则一直向外层查找直到找到一个变量为止,这种查找变量的值的链式方式(从内到外)称之为作用域链
网友评论