• JavaScript——变量及其作用域


    变量是存储信息的容器,JS变量可用来保存任何值

    变量类型

    • JavaScript是一种无类型、弱检测的语言,对变量的定义不需要声明变量类型,只需要赋值即可。

    变量的声明

    • 隐式和显式声明
    • 隐式为全局,显式为局部变量。隐式执行不会报错,访问它会报错。

    变量作用域

    全局变量
    • 所有在函数外面声明的变量都处于全局作用域中
    • 如果一个变量第一次初始化/声明的时候没有使用var关键字,那么他自动加入到全局作用域中
    • setTimeout中的函数是在全局作用域中执行的
        var Value1 = 200;
        var Value2 = 20;
        var myObj = {
        Value1 : 10,
        Value2 : 1,
        
        caleculatedIt: function(){
            setTimeout(function(){
            console.log(this.Value1 * this.Value2);
            }, 1000);
        }
        }
        
        myObj.caleculatedIt(); //4000
    
    
    局部变量(处于函数级别的作用域)
    • 没有块级作用域
    • 在一个函数内定义的变量只能在函数内部访问,或者这个函数内部的函数访问。(闭包除外)
    • 局部变量的优先级大于全局变量
      • 如果在全局作用域中什么的变量在局部作用域中再次声明,那么在局部作用域中调用这个变量时,优先调用局部作用域中声明的变量

    变量提升

    • 所以的变量声明都会提升到函数的开头(如果这个变量在这个函数里面)或者全局作用域的开头(如果这个变量是一个全局变量)
        function showName () {
            console.log ("First Name: " + name);
            var name = "Ford";
            console.log ("Last Name: " + name);
        }
        
        showName (); 
        // First Name: undefined
        // Last Name: Ford
    
    
    • 函数声明会覆盖变量声明(若变量声明并未赋值)
        var myName;
        function myName () {
            console.log ("Rich");
        }
        console.log(typeof myName); // function
    
    
    • 在严格模式下,如果没有先声明变量就给变量赋值将会报错

    基本类型和引用类型

    基本类型
    • 指简单的数据段。number、string、boolean、null、undefined
    • 按值访问,可以直接操作保存在变量中的实际值
    引用类型
    • 指对象类型。比如Object、array、function、Data等
    • 引用数据类型是保存在堆内存中的对象
  • 相关阅读:
    正敲着代码,鼠标坏了!
    DB2 OLAP函数的使用(转)
    修剪矩形
    classpath和环境变量设置(转)
    MyEclipse断点调试JavaScript浅析(转)
    Onunload和onbeforeunload方法的异同
    db2中的coalesce函数(转)
    db2:根据TABLEID找table
    [转]DB2行列转换
    DB2删除数据时的小技巧
  • 原文地址:https://www.cnblogs.com/wlfsmile/p/7873168.html
Copyright © 2020-2023  润新知