目录
在JavaScript中,根据作用域的不同,变量可以分为两种:
- 全局变量
- 局部变量
一、全局变量
在全局作用域下声明的变量叫做全局变量(在函数外部定义的变量)。
- 全局变量在代码的任何位置都可以使用
- 在全局作用域下,Var声明的变量是全局变量
- 特殊情况下,在函数内部没有用var声明的变量也是全局变量(不建议使用)
<script>
var num = 10;
console.log(num); //打印结果: 10
function fn(){
console.log(num) //打印结果: 10
}
fn()
</script>
可以看到,在函数内部我们并没有声明变量num,但是函数内部可以使用,所以全局变量在代码的任何位置都可以使用!
<script>
var num = 10;
console.log(num);
function fn(){
var a=b=c=num;
}
fn()
console.log(b)
console.log(c)
console.log(a)
</script>
看上图,我们的变量b、c在函数内部,但是没有声明,采用的是赋值操作,所以变量b、c是全局变量,而我们的变量a,是因var声明的,所以是局部变量,在函数外部使用时,会报错!!!这也证明了在函数内部没有用var声明的变量也是全局变量 !!!
二、局部变量
在局部作用域下声明的变量叫做局部变量(在函数内部定义的变量)
- 局部变量只能在该函数中使用
- 在函数内部使用var声明的变量是局部变量
- 函数的形参实际上就是局部变量
<script>
function fn(aru){
console.log('我是函数内部的aru:'+aru)
}
fn(13)
console.log('我是函数外部的aru:'+aru)
</script>
可以看到,形参aru我们只能在函数内部使用,在函数外部使用会报错undefined,所以函数的形参实际上是局部变量!!!
三、全局变量与局部变量的区别
- 全局变量:在任何一个地方都可以使用,只有在浏览器关闭时都会销毁,因此比较占内存。
- 局部变量:只在函数内部中使用,当其所有代码被执行时,会被初始化时;当代码执行结束时,就会被销毁,因此更节省空间。
okk,今天我们的变量的作用域就说到这里,希望能给大家有一点儿帮助。拜比~