变量作用域

157 阅读1分钟
  • 作用域:变量只在某范围内起作用和效果,目的是提高程序可靠性,更重要的是减少命名冲突,作用域可分为全局作用域和局部作用域
  1. 全局作用域:整个script标签或者一个单独的js文件
  2. 局部作用域:在函数内部就是局部作用域
  • 根据作用域不同,变量可分为全局变量与局部变量
  1. 全局变量:处于全局作用域的变量,在全局下都可以使用;变量会在程序运行时,把它设置为window对象的属性
  2. 局部变量:处于局部作用域下的变量,只能在声明它的函数中使用,全局下不能使用(形参也是局部变量)
  var a = 777 //全局下声明的叫全局变量
  var c = 21
  function fn() {
    var b = 666 //函数中声明的叫局部变量
    var c = 12 //局部有c变量就不会访问全局变量c,这里c打印12
    console.log(a, b, c) //局部可以访问全局变量a
  }
  fn()
  console.log(a)
  console.log(b) //不能访问局部变量,全局中没有b会报错

image.png

  • 需要注意的是if语句,for循环等虽然有大括号,但是没有生成作用域,任然是全局作用域

  • 全局变量只有在浏览器关闭时才会销毁,比较占内存;而局部变量在程序执行玩后就会销毁,比较节约资源