• js中变量的作用域


    定义:作用域即是能够产生作用的范围,每种语言都会存在作用域

    分类:1、全局变量  2、局部变量(通常在函数体内)

        (使用var关键字声明的变量不是全局变量就是局部变量)

        全局变量:声明在函数外部的变量,在代码中任何地方都能访问到的对象拥有全局作用域。

          (1)最外层函数和在最外层函数外面定义的变量拥有全局作用域    

           var num = 100;//最外层函数外面定义的变量
                function fun(){
                    console.log(num)
                    var num1 = 200;//最外层函数内定义的变量
                    function fun2(){
                        console.log(num1);
                    }  
                }
                fun()

          (2)所有末定义直接赋值的变量拥有全局作用域,即没有使用var关键字声明的变量都是全局作用域 

           function fun(){    
                    num = 100;
                }
                fun();   
                console.log(num)//输出结果:100,num未使用var关键字声明,为全局变量

          注意: 函数必须经过调用后才会被执行

          (3)所有window对象的属性拥有全局作用域

                function fun(){ 
                    window.name = "internet";
                    //window.location
                }
                fun() 

       局部变量:声明在函数内部的变量

          function fun(){
                var num = 123;
                console.log(num);
          }
          fun();
          console.log(num)//报错,未定义

      局部变量的优先级要高于同名的全局变量,也就是说当局部变量与全局变量重名时,局部变量会覆盖全局变量

       var num = 1;    
       function func() {
          var num = 2;
           return num;
       }
       console.log(func());    //输出:2 

    补充:变量提升

        用var关键字定义,所有变量会在该作用域的最前面进行声明;变量赋值,代码写在哪里就在哪里赋值

         变量声明提升,函数声明整体提升

  • 相关阅读:
    HAVING用法详解
    spring的定时任务
    js 将json字符串转换为json对象的方法解析
    Struts2 SSH整合框架返回json时,要注意懒加载问题
    Struts2 本是非单例的,与Spring集成就默认为单例
    Android 判断当前联网的类型 wifi、移动数据流量
    Android 动画的重复播放
    Android 监测手机联网状态 wifi、移动数据流量、无联网状态
    Android 设置界面的圆角选项
    Android 用Activity的onTouchEvent来监听滑动手势
  • 原文地址:https://www.cnblogs.com/wcx-20151115-hzz/p/10130535.html
Copyright © 2020-2023  润新知