zoukankan      html  css  js  c++  java
  • 11. 变量提升 && 执行上下文

    /*
        变量升级 预处理
      */
      /*
        js引擎在代码正式执行之前会做一个预处理的工作:
          1.收集变量
          2.收集函数
          依据:
            var 将var后边的变量定义但不赋值 var username=undefined;
            function(){}
      */
      console.log(username); //答案:underfined
      var username='kobe';
      console.log(username) //kobe
    
      fun();            //答案:正常执行函数
      function fun(){
        console.log('fun()');
      }
      /*
        作用域:作用域是在代码定义的时候产生的
        //执行上下文 执行上下文对象(this)
    
        执行上下文(excute context) EC
        理解:代码执行的环境
        时机(产生时):代码正式执行之前会进入到执行环境
        工作:
          1.创建变量对象:
            1)变量
            2)函数及函数的参数
            3)全局:window
            4)局部:抽象的但是确实存在
          2.确认this的指向
            1)全局:this --->window
            2)局部:this --->调用其的对象
          3.创建作用域链
            父级作用域链+当前的变量对象
          4.扩展
          ECobj={
            变量对象:{变量,函数,函数的形参}
            scopeChain(作用域链):父级作用域链+当前的变量对象
            this:{window || 调用其的对象}
          }
      */
    

      

  • 相关阅读:
    表中表效果
    有关div的位置,隐藏显示和移动
    js 获取服务器控件的值
    JavaScript resizeBy()
    js弹出对话框
    js操作select控件的几种方法发布
    javascript
    POJ2135(最小费用最大流模板)
    吐槽(2012/5/21)
    POJ2391(网络流)
  • 原文地址:https://www.cnblogs.com/Lolita-web/p/10456799.html
Copyright © 2011-2022 走看看