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

    词法分析

    词法分析:

    1. 先分析参数;
    2. 再分析变量声明;
    3. 分析函数声明;
      一个函数能使用的局部变量,就从上面的3步分析而来

    具体步骤:
    1.函数运行前的一瞬间,生成 Active Object(活动对象);
    2.分析形式参数
        2.1 函数声明的参数,形成AO的属性,参数的值即属性的值;
        2.2 接收实参,形成AO相应的属性值
    3.分析变量声明,如 var xxx
        1.如果AO上还没有 xxx 属性,则添加AO属性, 值是undefined
        2.如果AO上己经有 xxx 属性,则不做任何影响
    4.分析函数声明:如 function foo(){}
        1.把函数赋值给 AO.foo 属性
        2.如果此前 foo 属性已存在,则覆盖之前的

    如果此前 foo 属性已存在,则覆盖之前的

    示例1

    function t(age) {
    	console.log(age);//(1)
    	var age = 99;
    	console.log(age);//(2)
    	function age() {
    	}
    	console.log(age);//(3)
    }
    t(5);
    

    词法分析过程:
    1.形成活动对象:AO={};
    2.分析形式参数
        2.1分析参数:AO ={age:undefined};
        2.2接收参数:AO={age:5};
    3.分析greet变量声明,AO已经有greet属性,因此不做任何影响;
    4.分析greet函数声明,AO.greet = function() {} ,被覆盖成函数

    执行过程:
    (1) 的结果是: function age() {} //因为上述第4步
    (2) 的结果是: 99 //age被重新赋值了
    (3) 的结果是: 99 //age没有被重新赋值所以还是99

  • 相关阅读:
    vi编辑器常用配置
    vi编辑器使用
    Windows进程通信 -- 共享内存
    Loadrunner关于页面检查的几个函数详解
    使用Loadrunner进行文件的上传和下载
    LR学习笔记之—参数和变量
    LoadRunner字符串处理
    在LoadRunner中查找和替换字符串
    为LoadRunner写一个lr_save_float函数
    LoadRunner中调用SHA1算法加密字符串
  • 原文地址:https://www.cnblogs.com/wspblog/p/6098223.html
Copyright © 2011-2022 走看看