https://zhuanlan.zhihu.com/p/22486908
https://zhuanlan.zhihu.com/p/106287246
1.函数可以访问函数内部定义的变量,也可以访问函数外部定义的变量
//内部
function add(){
var counter = 0;
conuter++;
return counter;
}
//外部
var counter = 0;
function add(){
counter++;
return counter;
}
2.函数内部的变量只能在函数内部访问
function add(){
var counter = 0;
conuter++;
return counter;
}
console.log(counter);//undefined
注:counter 是一个 全局 变量。
在web页面中全局变量属于 window 对象。
全局变量可应用于页面上的所有脚本。
在第一个实例中,counter 是一个 局部 变量。
局部变量只能用于定义它函数内部。对于其他的函数或脚本代码是不可用的。
全局和局部变量即便名称相同,它们也是两个不同的变量。修改其中一个,不会影响另一个的值。
注意:变量声明时如果不使用 var 关键字,那么它就是一个全局变量,即便它在函数内定义。
2.变量的生命周期
全局变量的作用域是全局性的,即在整个JavaScript程序中,全局变量处处都在。
而在函数内部声明的变量,只在函数内部起作用。这些变量是局部变量,作用域是局部性的;函数的参数也是局部性的,只在函数内部起作用。
3示例,计数器困境
设想下如果你想统计一些数值,且该计数器在所有函数中都是可用的。
你可以使用全局变量,函数设置计数器递增:
var counter = 0;
function add(){
counter += 1;
console.log(counter);
return counter;
}
add();//1
add();//2
add();//3
网友评论