Java教程

JavaScript---5.作用域

本文主要是介绍JavaScript---5.作用域,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  • 作用域

    • 作用域指的是一个变量的作用范围

    • 在JS中一共有两种作用域:
      1.全局作用域
      2.函数作用域

    • 全局作用域

      • 创建的变量都会作为window对象的属性保存

      • 创建的函数都会作为window对象的方法保存

          var a = 10;
          var b = 20;
          console.log(window.a, window.b);
          
          function fun(){
          	console.log("我是fun函数");
          }
          
          window.fun();
          window.alert("hello");
        
    • 函数作用域

      • 调用函数时创建函数作用域 函数执行完毕后 函数作用域销毁

      • 每调用一次函数就会创建一个新的函数作用域 他们之间是相互独立的

      • 在函数作用域中 可以访问到全局作用域的变量
        在全局作用域中无法访问到函数作用域的变量
        注意:如果在函数作用域,没有使用var 直接给一个变量赋值 相当于是 window.a=x 它是全局变量

      • 当在函数作用域操作一个变量时,它会先在自身作用域中寻找,如果有就直接使用,没有在上一级中找
        如果没有想上一级作用域中找,直到找到全局作用域为止。
        如果全局作用域中依然没有找到,则会报错ReferenceError

      • 在函数中要访问全局变量可以使用window 比如window.a

      • 在函数作用域中也有声明提前的特性
        使用var关键字声明的变量 会在函数中所有的代码执行之前被声明
        函数声明也会在函数中所有的代码执行之前执行

      • 在函数中,不使用var声明的变量都会称为全局变量

      • 定义形参就相当于在函数作用域中声明了变量

  • 关于提前声明

    • 变量的提前声明

      • 使用var关键字声明的变量,会在所有的代码执行之前被声明(先声明 后赋值,赋值是在执行到声明所在行时生效)
      • 如果声明变量时不适用var关键字,则变量不会被声明提前
    • 函数的提前声明

      • 使用函数声明形式创建的函数 function fun(){} 它会在所有的大妈执行前就被创建加载 所以可以在函数声明前调用函数
      • 使用函数表达式创建的函数 不会被提前声明 所以不能在声明前调用
这篇关于JavaScript---5.作用域的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!