在JavaScript中,根据作用域的不同,变量可以分为两种:

  • 全局变量
  • 局部变量

2.1 全局变量

在全局作用域下声明的变量叫做全局变量(在函数外部定义的变量)。


  • 全局变量在代码的任何位置都可以使用
  • 在全局作用域下 var 声明的变量 是全局变量
  • 特殊情况下,在函数内不使用 var 声明的变量也是全局变量(不建议使用) 【在全局作用域下,不使用 var 声明的变量也是全局变量。】

2.2 局部变量

在局部作用域下声明的变量叫做局部变量(在函数内部定义的变量)


  • 局部变量只能在该函数内部使用
  • 在函数内部 var 声明的变量是局部变量
  • 函数的形参实际上就是局部变量

2.3 全局变量和局部变量的区别

  • 全局变量:在任何一个地方都可以使用,只有在浏览器关闭时才会被销毁,因此比较占内存
  • 局部变量:只在函数内部使用,当其所在的代码块被执行时,会被初始化;当代码块运行结束后,就会被销毁,因此更节省内存空间
var num = 10; // num就是一个全局变量
console.log(num);

function fn() {
console.log(num);
}
fn();

// console.log(aru); // 报错

// 局部变量:在局部作用域下的变量,或者在函数内部的变量就是 局部变量
// 注意: 函数的形参也可以看做是局部变量
function fun(aru) {
var num1 = 10; // num1就是局部变量 只能在函数内部使用
num2 = 20;
}
fun();
// console.log(num1); // 报错
// console.log(num2);