• 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关键字定义,所有变量会在该作用域的最前面进行声明;变量赋值,代码写在哪里就在哪里赋值

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

  • 相关阅读:
    JNI概述
    Android shape的使用
    全局对象Application的使用,以及如何在任何地方得到Application全局对象
    EditText中禁止输入中文的方法
    利用Selenium实现图片文件上传的两种方式介绍
    LoadRunner结果分析 – TPS
    详解 Spotlight on MySQL监控MySQL服务器
    Linux 服务器运行健康状况监控利器 Spotlight on Unix 的安装与使用
    资源监控工具Spotlight-使用说明
    RobotFrameWork+APPIUM实现对安卓APK的自动化测试----第七篇【元素定位介绍】
  • 原文地址:https://www.cnblogs.com/wcx-20151115-hzz/p/10130535.html
Copyright © 2020-2023  润新知