javascript机制相关随笔

1、自从第一份能够被有意义地书写于其它介质(我的意思是泛指计算机存储
系统之外)的代码出现以来,一个重要的问题就被提了出来:要让计算机理解
这份代码,就需要一个翻译系统。
翻译系统有编译器与解释器两类。一般情况下,编译器将代码翻译成计算
机可以理解的、二进制的代码格式,并置入存储系统(例如存为二进制可执行
文件) ;解释器则用一个执行环境来读入代码,然后执行这份代码——这里主
要是指单纯解释执行的语言系统。
对于解释执行的系统来说,显然我们不必要总是逐字符读入并解释、执行 。
由于一份代码如果被写定,那么执行时通常不需要改变,因此我们可以先将解
释过程做一次,由源代码转换为中间代码(*),然后执行系统只需要处理中间代
码即可。这样的好处是,执行系统可以变成虚拟执行环境,在不同的平台上用
各自的虚拟执行环境来处理相同的中间代码,即可实现跨平台应用——这也是
Java 和.NET 的基本实现思路。

2、在 JavaScript 中,语法解释与执行分成两个阶段,而变量声明是在语法解释阶段处理的。

3、在 JavaScript 中,显式声明的变量在函数和全局作用域中,是没有次
序限制的。你可以先声明再使用,也可以先(在某些语句或表达式中)使用它 ,
最后再显式地声明。因此显式声明总是早在代码执行之前,就被引擎理解了的 。

4、通过 var 语句来声明的变量,在
语法解释期中的值总是 undefined。但在函数的显式声明中,就不是这样了。

5、在 JavaScript 中,对象可以轻松地持有它自身,或者
它的类——只要它们在可视的局部或全局范围内,被显式地声明过。

               《Javascript语言精髓与编程实践》-周爱民

原文地址:https://www.cnblogs.com/chenqiangmingyu/p/js_system.html