zoukankan      html  css  js  c++  java
  • js词法分析

    /词法分析

    1先分析参数

    2在分析变量声明

    3分析函数声明

    一个函数能使用的局部变量就从上面的3步分析而来

    具体步骤:

    0:函数运行前的1瞬间,生成Active Object(活动对象),下称AO

    1:把声明的参数形成Ao的属性,参数的值即属性的值;;接收参数,形成AO相应属性的值

    2:分析变量声明,如var age;

    如果Ao上还没有age属性,则添加age属性,值是undefined;

    如果AO上已经有age属性,则不做任何处理

    3 分析函数声明,如function foo(){};

    则把函数赋给AO.foo()属性

    注:如果此前foo属性已经存在,则被无情覆盖

    /

    function t(age){

    alert(age);

    }

    t(5);//5

    t();//undefined

    /词法分析过程:

    AO(age:undefined)

    运行过程:

    t(5)    AO.age=5;alert(AO.age);//5

    t()    AO.age没有得到赋值,还是undefined/

    function t2(){

      var age=99;

      alert(age);

    }

      t2(5);

    /分析过程:

    0:形成AO={};

    1: 分析形参 AO={age:undefined;}

    2:分析var age,发现AO已有age属性,不做任何影响

    执行过程:

    AO.age=99;

    alert(AO.age);//99

    /

    function a(b){

      alert(b);

      function b(){

      alert(b);

      }

      b();

    }

    a(1);

    /分析过程

    0:AO={};

    1:分析参数AO={b:undefined;}

    接收参数AO={b:1}

    2:分析var声明,此函数没有var

    3:分析函数声明,AO={b:function(){alert(b);}}

    执行期

    alert(b);//function

    b();//由作用域寻找到a函数中的b,即function ,alert出来

    /

    function a(b){

      alert(b);

       b=function(){

      alert(b);

      }

      b();

    }

    a(1);

  • 相关阅读:
    缓存更新的套路
    return 和 return false 的区别
    TensorFlow函数:tf.truncated_normal
    TensorFlow随机值:tf.random_normal函数
    TensorFlow函数:tf.lin_space
    TensorFlow函数:tf.ones_like
    TensorFlow函数:tf.ones
    TensorFlow函数:tf.zeros_like
    Tensorflow函数:tf.zeros
    数据分析常用的python工具和SQL语句
  • 原文地址:https://www.cnblogs.com/autismtune/p/5178432.html
Copyright © 2011-2022 走看看