堂主 - WEB前端开发

专注于互联网 | WEB前端开发 | 以用户为中心的体验 | 家是圆心 | Code is art !

博文列表

JAVASCRIPT FUNCTIONS

15 comments

前语:本文是堂主对《Pro JavaScript with Mootools》一书的第二章函数部分知识点讲解的翻译,该书的作者Mark Joseph Obcena是Mootools库的作者和目前开发团队的Leader。个人感觉这部分对Javascript函数的基本知识、内部机制及JavaScript解析器的运行机制讲的比较明白,脉络也清楚,对初学者掌握JavaScript函数基础知识很有好处。尤其难得的是不同于其他JavaScript书籍讲述的都是分散的知识点,这本书的知识讲解是有清晰、循序渐进的脉络的。换句话说,这本书中的JavaScript知识是串起来的。

虽然这本出版了近2年的书籍国内并未正式引进,但我依然建议有需求的可以从amazon上自行买来看一下,或者网上搜一下PDF的版本(确实有PDF全版下载的)。我个人则是花了近300大洋从amazon上买了一本英文原版的,没办法,更喜欢纸质版的书籍。这本书其实可以理解为“基于MooTools实践项目的JavaScript指南”,总的脉络是“JavaScript基础知识 - 高级技巧 - MooTools对原生JavaScript的改进”,非常值得一读。

本篇译文字数较多,大概2万字,我不知道能有几位看官有耐心看完。如果真有,且发现堂主一些地方翻译的不对或有优化建议,欢迎留言指教,共同成长。另外,非本土产技术类书籍,还是建议直接读英文原版,翻译的再好也比不了原版的意境。

下面是译文正式内容:

---------------------------------------------------------------------------

关于FireFox中with语句在解析时的一个BUG

5 comments

首先感谢寒飞紫,是他对我在翻译的《Pro JavaScript with MooTools》第二章(非出版目的,纯属个人爱好)的demo中发现了这个问题。

下面我们来看一段简单的代码:

var demo = 123;

function demo() {}

alert(typeof demo);

我的问题是,alert出的会是function还是number?

OK,如果看官对JavaScript函数的内部工作机制和JavaScript解析器的解析机制不那么清楚的话,回答这个问题最简答的方法就是copy出这段代码,放到FireBug的控制台中运行一下。但是,FireBug控制台中运行的结果就一定准确么?

在FireBug控制台中alert出的结果是function。但如果我们把这段代码放到一个网页body的script中,再访问这个网页,那么alert出的会是什么呢?