当控制转移到可执行代码时,便会进入一个执行上下文,此时会创建并初始化作用域链,进行变量初始化,确定this的值。而作用域链的初始化,变量初始化及this值的确定,则取决于可执行代码的类型。。。

(更多…)

, ,

ES-262学习笔记:可执行代码的类型

在ECMAScript 262-3中,有三类可执行代码:全局代码,Eval代码和函数代码。

(更多…)

前一篇文章了解了函数对象的创建方式,那么这篇文章来了解下函数对象的创建过程。。。

(更多…)

在ECMAScript 262-3 “10.1.1 Function Objects”一节,描述了两类函数对象:

1. 程序创建的函数对象,如:function test() {};

2. 语言内置的函数对象,如:parseInt等等。

这篇文章主要介绍:通过程序创建函数对象的方式,并比较下他们之间的差异。。。

(更多…)

ES-262学习笔记:&运算符的工作原理

一. &的运算逻辑

1. ES-262-3中,11.10一节对&的运算逻辑描述如下:

以expression1 & expression2为例:

1. 计算expression1;
2. 对Result1进行求值;
3. 计算expression2;
4. 对Result3进行求值;
5. 将Result2转换为32位有符号整数;
   a. 将Result2转换为数字;
   b. 如果Result_a是NaN,0,正负无穷大,就返回0;
   c. 计算Result_a的绝对值,然后对绝对值进行下舍入,最后让结果的符号与Result_a一致;
   d. 对Result_c和232进行求模;
   e. 如果Result_d >= 231,就返回Result_d减去232之后的结果;否则,返回Result_d。
6. 将Result4转换为32位有符号整数;(逻辑同上)
7. 对Result5与Result6进行按位与运算;
8. 返回Result7。

(更多…)