提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
一、什么是全局变量和局部变量
全局变量:常常定义在函数外部,拥有全局作用域,即在 JavaScript 代码的任何地方都可以访问。
局部变量:定义在函数内部,只能在函数中使用的变量,作用范围是从函数开始到结尾,即在{}里。
在函数内声明的变量只在函数体内有定义,即为局部变量,其作用域是局部性的。需要注意的是,在函数体内声明局部变量时,如果不使用 var 关键字,则将声明全局变量。
二、如何声明变量
2.1.声明全局变量
代码如下(示例):
第一种声明方式:var关键字+变量名在函数外部声明就是全局变量
列如:
var bianliang ="全局变量"
第二种声明方式: 不适用 var 关键字声明,直接给变量名赋值,不管在函数内部还是在外部都是全局变量
第三种声明方式 : 使用window全局对象来声明,全局对象的属性对应也是全局变量,例如:
window.test3 = 'window全局对象声明全局变量';
console.log(test3);//结果:window全局对象声明全局变量
2.2声明局部变量
声明局部变量一定要使用var关键字,未使用则为全局变量使用,局部变量一般都在函数内部
<script>
function bl() {
text1 = "我也是全局变量";//没有使用var 为全局变量
var text2 = "我是局部变量";
console.log(text2); //局部变量只能在函数中使用
}
</script>
三.全局变量和局部变量一些常见问题
3.1全局变量跟局部变量重名
<script>
var str = "我是全局变量";
function b() {
var str = "我是局部变量";
console.log(str); //结果:我是局部变量
}
b();
console.log(str);//结果:我是全局变量
</script>
3.2 零散变量的问题
<script>
var str = "我是全局变量";
! function b() {
console.log(str); //结果:undefined
var str = "我是局部变量";
console.log(str); //结果:我是局部变量
}()
</script>