zoukankan      html  css  js  c++  java
  • 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等
    • 引用数据类型是保存在堆内存中的对象
  • 相关阅读:
    员工管理,这么做就对了
    学会自我管理的好处及自我管理包括的内容
    职场人必看的5本书推荐,首推《情商必读12篇》
    企业管理方面的经典著作推荐
    这6本精心挑选的团队管理类好书助你做好团队管理
    战略规划,你的企业真的做对了吗?
    如何提高说服力?说服的技巧有哪些?这本书能给你答案
    读书使人进步,这本营销书籍让你真正读懂市场营销
    P1228 地毯填补问题题解
    P1010 幂次方题解
  • 原文地址:https://www.cnblogs.com/wlfsmile/p/7873168.html
Copyright © 2011-2022 走看看