《悟透javascript》经典总结

一直崇尚读外国人写的书,最近偶然在图书馆借到一本《悟透javascript》,非常有感觉。作者为:阿里软件的李站。现将经典的总结如下。

引子

编程世界里只存在两种基本元素,一个是数据,一个是代码。数据是有惯性的,如果没有代码来施加外力,她总保持自己原来的状态。而代码就象能量,他存在的唯一目的,就是要努力改变数据原来的状态。

面向对象的思想首次把数据和代码结合成统一体,并以一个简单的对象概念呈现给编程者。javascript——对象本无根,类型亦无形。

一、回归简单

JavaScript就是把数据和代码都简化到最原始的程度。

简单数据只有 undefined, null, boolean, number和string这五种,而复杂数据只有一种,即object。

JavaScript中的代码只体现为一种形式,就是function。

简单类型都不是对象,JavaScript没有将对象化的能力赋予这些简单类型。直接被赋予简单类型常量值的标识符、变量和参数都不是一个对象。JavaScript中只有object类型和function类型提供了对象化的能力。

二、没有类

object就是对象的类型。在JavaScript中不管多么复杂的数据和代码,都可以组织成object形式的对象。

但JavaScript却没有 “类”的概念!类已化于无形,与对象融为一体。正是由于放下了“类”这个概念,JavaScript的对象才有了其他编程语言所没有的活力。

三、函数的魔力 

JavaScript的代码就只有function一种形式,function就是函数的类型。当我们写下一个函数的时候,只不过是建立了一个function类型的实体而已。javascript函数的写法有“定义式”和“变量式”两种。这两种函数的写法是等价的,除了一点细微差别,其内部实现完全相同。

 

JavaScript执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行的。而且,在同一段程序的分析执行中,定义式的函数语句会被提取出来优先执行。函数定义执行完之后,才会按顺序执行其他语句代码。

一段代码中的定义式函数语句会优先执行,这似乎有点象静态语言的编译概念。所以,这一特征也被有些人称为:JavaScript的“预编译”。

你可能感兴趣的:(JavaScript)