-.arguments的解释:

1.是一个对象,是一个长的很像数组的对象

二.arguments内容是什么?

1.arguments是函数运行时的实参列表

2.arguments收集的“所有”的实参,即使没有与之相对应的形参,也可以用arguments来获取任意多个的实参

3.形参与对应的arguments单元,其实是相互映射的,互相影响

4.arguments可以获取函数运行时,收到的实参个数(在多态里可以用到)

5.arguments.callee  属性代表 “当前运行的函数”

三:函数运行期内,关键的三个对象

1.AO---》本函数A上没有某属相,则继续去外层函数的AO上找,直到全局对象  叫做  作用域链

2.anguments---》 每个函数有自己的callee,但不向外层接着找 arguments 的相关属性,  即不形成链

3.this的意思:

1.作为普通的函数来调用  this的值指向--》window  准确的说,this为null 解释成window  在新的标准中this为null 则解释成undefine

2.作为对象的方法来调用    this指向方法的调用者,即该对象    作为方法调用时,this指向其调用者,即母体对象

四:js中函数的4种调用状态:

1.作为普通函数来调用,    准确的说this 为null,但被解释成windows    在后来的标准中,如果this为null  则解释为undefine

2.作为对象的方法来调用: this指向方法的调用者,即该对象    作为方法调用时,this指向其调用者,即母体对象

3.函数作为构造函数调用时:   js中没有类的概念  创建对象是用构造函数来完成,或者直接用json格式{}来写对象

函数作为构造函数运行时,return 的值是忽略的,还是返回对象。

4.函数通过call,apply 调用:    语法格式:函数.call(对象,参数1,参数2。。。参数N);

fn.call(对象obj,参数1,参数2,。。。参数N);

运行如下:

a):fn函数中的this--指向---》对象obj

b):运行fn(参数1,参数2,。。参数N);

五: var的定义:是函数运行的上下文中,声明的一个变量。不加var 就是一个赋值操作

六:词法分析的过程:

0:AO={}

1:分析参数  AO={greet:undefined}

2:分析var声明 (变量) greet变量声明,AO已经有greet属性,因此不做任何影响

3:分析greet函数声明,AO.greet=function(){},被覆盖成函数

七:函数能使用的局部变量,分析3样东西

1.先分析参数

2.再分析变量声明

3.分析函数声明

八:具体步骤:

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

1:  1.1函数声明的参数,形成AO的属性,值全是undefined

1.2接受实参,形成AO相应额属相值

2:分析变量声明  如var  age

如果AO上没有age 属性,则添加AO属相,值是undefined

如果AO上已经有age属相,则不作任何影响

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

则把函数赋给AO.foo属性   注:如果以前foo属性以存在,则被无情的覆盖了

九:function  t1(){}和 t2=function(){}的区别:

1.这两种方式,效果不同

2. t1是函数声明,虽然全局内也得到一个t1变量,值是function

3.而t2只是一个赋值过程-----值是右侧的表达式的返回结果,即函数

4.因此,t1 t2两种方式在词法分析时,有着本质区别    前者  在词法分析阶段,就发挥作用, 后者在运行阶段才发挥作用

十:作用域链:函数由内到外  所产生的AO

javascript的词法分析的更多相关文章

  1. 深入JavaScript:词法分析、连续赋值猜想

    JavaScript:词法分析.连续赋值猜想 原创文章,转摘请注明出处:苏福:http://www.cnblogs.com/susufufu/p/5851642.html 深夜发文,先吐槽下博客园的编 ...

  2. 前端——JavaScript

    何谓JavaScript?它与Java有什么关系? JavaScript与HTML.CSS组合使用应用于前端开发,JavaScript是一门独立的语言,浏览器内置了JS的解释器.它除了和Java名字长 ...

  3. 前端基础 之JS

    浏览目录 JavaScript语法基础 JavaScript数据类型及类型查询 JavaScript运算符 JavaScript流程控制 JavaScript函数 词法分析 JavaScript内置对 ...

  4. javascript --- 再谈词法分析

    javascript代码是如何执行的呢,分为六个步骤(就像把大象装进冰箱总共分几步?): 第一步:载入第一个js代码段(注:script标签对内的代码或是引用js代码,这也说明js并不是一行一行(单纯 ...

  5. javascript --- 词法分析

    JavaScript代码自上而下执行,但是在js代码执行前,会首先进行词法分析,所以事实上,js运行要分为词法分析和执行两个阶段. 词法分析主要分为三步: 第一步: 分析形参: 第二步: 分析变量声明 ...

  6. Javascript 笔记与总结(1-2)词法分析

    词法分析,按顺序分析 3 样: 第 1 步:先分析参数 第 2 步:再分析变量声明 第 3 步:再分析函数声明 一个函数能使用的局部变量,就从上面 3 步分析而来. 具体步骤: 0:函数运行前的瞬间, ...

  7. 浅谈JavaScript词法分析步骤

    JavaScript代码运行前有一个类似编译的过程即词法分析,词法分析主要有三个步骤: 分析参数 再分析变量的声明 分析函数声明 具体步骤如下: 函数在运行的瞬间,生成一个活动对象(Active Ob ...

  8. javascript中的词法分析

    词法分析 JavaScript中在调用函数的那一瞬间,会先进行词法分析. 词法分析的过程: 当函数调用的前一瞬间,会先形成一个激活对象:Avtive Object(AO),并会分析以下3个方面: 1: ...

  9. JavaScript之函数,词法分析,内置对象和方法

    函数 函数定义 JavaScript中的函数和Python中的非常类似,只是定义方式有点区别. // 普通函数定义 function f1() { console.log("Hello wo ...

随机推荐

  1. 编码规范<1>

    目录: 1 排版 2注释 3标识命名 4可读性 1排版 1-1程序使用UTF-8的编码方式 1-2使用空格作为缩进 , 尽量不要使用tab 1-3相对独立的程序块之间,变量说明之后必须加空格 . 例如 ...

  2. Android receiver

    可以在代码文件中声明一个receiver,也可以在manifest中声明一个,前者中的receiver只有在该activity launch起来以后才会监听其所感兴趣的事件, 而如果在androidM ...

  3. 20145236 冯佳 《Java程序设计》第3周学习总结

    20145236 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 认识对象 一.面向对象和面向过程 •面向对象是相对面向过程而言 •面向对象和面向过程都是一种思想 •面向过程 ...

  4. 20145236 冯佳 《Java程序设计》第1周学习总结

    20145236 冯佳 <Java程序设计>第1周学习总结 教材学习内容总结 因为假期在家的时候并没有提前自学Java,所以,这周算是真正开始第一次接触Java.我对Java的了解也仅仅停 ...

  5. 10款优秀Vim插件帮你打造完美IDE

    导读 如果你稍微写过一点代码,就能知道“集成开发环境”(IDE)是多么的便利.不管是Java.C还是Python,当IDE会帮你检查语法.后台编译,或者自动导入你需要的库时,写代码就变得容易许多.另外 ...

  6. elasticsearch插件之一:kibana

    介绍: 要说kibana,就不得不先说一下logstash.这里呢,先要讲个故事.故事是开头是这样的,Logstash早期曾经自带了一个特别简单的logstash-web用来查看ES中的数据,其功能太 ...

  7. DatagridView自动充满屏幕,并能指定某列宽度

    1.要使datagridview正好充满屏幕,设置其AutoSizeColumnsMode属性为fill 2. 同时,我们想要某列宽点,某列窄点,在AutoSizeColumnsMode属性为fill ...

  8. IBatis.net动态SQL语句(六)

    在学习动态SQL语句之前,首先必须对条件查询有一定了解,先来学习如何向IBatis.Net的映射文件里传入参数. 一.条件查询 1.传递单个参数 如根据Id查询: <select id=&quo ...

  9. 从原理上搞定编码(四)-- Base64编码

    开发者对Base64编码肯定很熟悉,是否对它有很清晰的认识就不一定了.实际上Base64已经简单到不能再简单了,如果对它的理解还是模棱两可实在不应该.大概介绍一下Base64的相关内容,花几分钟时间就 ...

  10. 都是以父元素的width为参照物的

    本文依赖于一个基础却又容易混淆的css知识点:当margin/padding取形式为百分比的值时,无论是left/right,还是top/bottom,都是以父元素的width为参照物的!也许你会说, ...