函数作用域
函数作用域指的是在函数内定义的变量只能在函数内部访问,在函数外部无法访问。它的作用是为了保护函数内部定义的变量不被外部篡改,从而保护函数的正常执行。函数作用域只存在于函数内部,当函数执行完毕后,函数作用域也就销毁了。
全局作用域
全局作用域指的是在全局范围内定义的变量,可以在任何地方访问,不受函数限制。它的作用是把一些全局变量提取出来,以便在任何地方访问,从而方便程序的维护和扩展。全局作用域一般在程序执行完毕后才会销毁,只要程序在运行,它就存在。
区别
- 函数作用域只存在于函数内部,当函数执行完毕后,函数作用域也就销毁了;全局作用域一般在程序执行完毕后才会销毁,只要程序在运行,它就存在。
- 函数作用域的定义变量只能在函数内部访问,在函数外部无法访问;全局作用域的定义变量可以在任何地方访问,不受函数限制。
- 函数作用域的作用是为了保护函数内部定义的变量不被外部篡改,从而保护函数的正常执行;全局作用域的作用是把一些全局变量提取出来,以便在任何地方访问,从而方便程序的维护和扩展。
使用方法
在定义变量的时候,需要根据使用场景来判断是使用函数作用域还是全局作用域。如果变量只在函数内部使用,则使用函数作用域;如果变量在多个函数中使用,则使用全局作用域。
// 函数作用域 function foo() { var a = 1; console.log(a); } // 全局作用域 var b = 2; console.log(b);