javaScript作用域

1作用域

1.1、作用域定义

        通常来说,一段程序代码中所用到的名字(变量名和函数名)并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。

        简单理解:就是代码名字(变量)在某个范围内起作用和效果

        作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突

        js作用域(es6)之前:全局作用域 局部(函数)作用域,es6后有块级作用域



1.2、全局作用域

  1. 直接编写在script标签中或者一个单独的js文件内的Js代码
  2. 全局作用域在页面打开时创建,在页面关闭时销毁
  3. 在全局作用域中有一个全局对象window,它代表的是一个浏览器的窗口,它由浏览器创建,我们可以直接使用它
  4. 在全局作用域中:创建的变量都会作为window对象的属性保存;创建的函数都会作为window对象的方法保存
  5. 全局作用域中的变量都是全局变量;在页面的任意部分都可以访问的到。
   var a=10;
   var b=10;
  // var c="hello";
   console.log(window.c);//加window.,如果没有找到变量c,会undefined,不加的话,会报错
          
   function fun(){
       console.log("我是fun函数");
   }
   window.fun();//创建的函数都会作为window对象的方法保存

 

1.3、局部作用域(函数作用域

  1. 在函数内部就是局部作用域。这个变量只在函数内部起作用
  2. 调用函数时创建函数作用域,函数执行完毕以后,函数作用域销毁
  3. 每调用一次函数就会创建一个新的函数作用域,他们之间是互相独立的
  4. 在函数作用域中可以访问到全局作用域的变量, 在全局作用域中无法访问到函数作用域的变量
  5. 在函数中如果要访问全局变量,可以使用window对象
  var a = 10;
      function fun() {
        var a = "我是fun函数中的变量a";
        //console.log("a="+a);
        function fun2() {
          // console.log(a);
          console.log("a=" + window.a);
        }
        fun2(); //10
      }
      fun();

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值