共计 94 篇文章

前端要给力之:红绿灯大战中的火星生命-Promise

传说的开始 前些日子看了三集的《浪客剑心》的电影版,它的最后一集是叫“传说的终结”。这几个字让我很感概:我不是剑心迷,我的一些80、90后朋友却是看着剑心漫画长大的,因此他们常讲的一些梗在我看来便如同究极深奥的科学谜题;然而当我有一天终于要看这“传说中的剑心”的时候,它却“终结”了。 我看这个片子纯粹是因为打得好看,看完也就知道“剑心是个在脸上画叉叉的高颜值冷男(好吧我承认为了显示我还算个跟得上时代的人我把最近听到的几乎所有的流行词以及流行的文字写法全用上了)”。然而面对这样的尴尬,究其根源却在于我是个不知道“传说的开始”的家伙。 所以, ...

《JavaScript语言精髓与编程实践(第二版)》勘误【2012.12】

相关信息可以看这里:http://blog.csdn.net/aimingoo/article/details/7362552 本文只发勘误。 勘误 第一印次 在第二印次中,已经被处理的勘误:12处(该版有两个印次,下面这些勘误是在第二印次中已经修订了的) P6:正文倒数第二行中:   缘于DHTML(Dynamic HML,动态网页)带来的…… 改为:   缘于DHTML( ...

迟来的真相:关于JavaScript的历史

今天看到李松峰老师(@李松峰)发布了新版的《JavaScript高级程序设计》(第三版)的预售消息,于是跑去当当(在这里)仔细地读了一下新版有关“JavaScript起源”的段落。读罢,心中的种种不安一扫而空:在这本书的第三版,总算还原了JavaScript起源的真相。 话说有一本《JavaScript权威指南》,以及这本《JavaScript高级程序设计》,算这些年对前端界/JavaScript圈子影响最大的、JavaScript经典译著。然而前者历来对JavaScript的起源语焉不详,后者则正好相反,从第一版起便“详细( ...

《JavaScript语言精髓与编程实践》(第二版)相关资源汇总

《JavaScript语言精髓与编程实践》已经陆续在网店开售,相关信息可以看这里: 绿皮书再版!ECMAScript 5th有讲呵! http://blog.csdn.net/aimingoo/article/details/7362552 主要的修改与更新的内容在这里: 《JavaScript语言精髓与编程实践》第二版的主要修改 http://blog.csdn.net/aimingoo/article/details/6772435 在书中使用到了新版( ...

绿皮书再版!ECMAScript 5th有讲呵!

终于可以发博来讲这本书了。哈哈哈,终于印出来了哇!从去年9月一直等到现在,同志们啊,我被催得好那个悲 【3月19日补充】 各大网上书店开始有售: 京东:http://book.360buy.com/10950776.html 当当:http://product.dangdang.com/product.aspx?product_id=22628482 china-pub: ...

《JavaScript语言精髓与编程实践》第二版的主要修改

2008年3月,第一版  第一次印发版本。 2012年3月,第二版:  在第一版基础上修订发布后所发现的七十余处勘误,其中五十余处主要是字词、排版类错误。  重新制版,避免了印刷中导致的破折号丢失的问题。  将目录细化到第四级标题,以完整地展示本书的内容与结构。  加入本附录,以维护本书的多个版次。  从第三部分“编程实践”中去除掉有关Qomo的大部分内容(这些内容已经可以通过该项目的开放文档获得),并开始讲述QoBean:  修改:第6章 元语言:QoBean核心技术与实现。 ...

JavaScript类型总览(图)

这个图来自于《JavaScript语言精髓与编程实践》第三章P184页。最近在改第二版,这张图重做了,需要的可以对照着看。关注这个体系的朋友可以参考如下: 再谈JavaScript的数据类型问题 http://blog.csdn.net/aimingoo/article/details/6634977 三谈类型问题:ECMAScript为什么错了? http://blog.csdn.net/aimingoo/article/details/6636961 ...

详图实证:再谈JavaScript的语源问题

本文发表于《程序员》2011.03期 有两个错误的观点,其一是“JavaScript在语源上继承自Cmm”。这个错误的观点主要的来自于以下途径(部分): 2002年10月7日的《Wired Magazine(连线杂志)》的一份名为“Mother Tongues”的图; O’Reilly公布的“The History of Programming Languages图; Levenez.com公布的“ ...

三谈类型问题:ECMAScript为什么错了?

一、历史  首先讲一个小历史,这个我以前写过一篇文章在《程序员》上。当年,有一家叫Nombas的公司,发布了一个名为C--的语言,后来做成了一个“能嵌入网页的脚本”。在2001年前后,Nombas官方网页对这一个产品介绍中,使用了“history of scripting”这样的标题,讲述的,却主要是c--这个语言的历史。然而,令人混乱的是:C--这个语言在1998年前后开始按照ECMAScript标准来实现,也就是说,它也是一种JavaScript语言;并且, ...

再谈JavaScript的数据类型问题

引子 JavaScript的数据类型问题已经讨论过很多次了,但许多人还有许多书仍然沿用着错误的、混乱的一些观点,所以就再细讲一回。 提及这个讨论的原因在于argb同学在我的MSN博客上的一段回复,又更早的起源则是两年前关于《JavaScript征途》一书的大讨论: 从“装B被雷劈讲起 ——这个事就让它过去了过去了吧。在讨论中我提及到该书对JavaScript类型系统介绍的混乱,而argb翻出了这篇历史文章,指我的混乱更混乱。于是我列了以下几个问题给他: 我想很难很快速地解释你的问题。那么,接着你的思路,我就问几个问题好了: 1、函数是不是类型?是什么类型? 2、为什么说JavaScript中的函数是“第一型” ...

我们需要什么样的“技术”

【0】我们需要什么样的“技术” 这个问题以及整件 事情来源于hax的一篇文章《关于国内前端和JS技术发展的乱想》: http://hax.iteye.com/blog/1128269 hax已经讲得很好了。关于js、前端、框架等等,hax还有一些设想、想法与新思,而我其实已经没有什么话题好讲。上半年w3ctech的“拥抱HTML5”大会,裕波让我去讲讲,我憋了一个多月,愣是想不出什么东西来。没有可讲的, ...

前端要给力之:分解对象构造过程new()

本文讨论JavaScript中的对象创建运算new。需要说明的是,本文所讨论的“将new()过程分解为多个步骤”,并非一般js开发中的所须技巧,而是在js来构建OOP系统的必要技术。 一、JavaScript构造器与构造过程的特点 JavaScript中通过以下方式声明和使用构造器: function MyObject() { this.xxx = 1; } MyObject.prototype.yyy = 2; obj1 = new MyObject(); obj2 = new MyObject(); 其中xxx与yyy的不同在于: ...

前端要给力之:原子,与原子联结的友类、友函数

JavaScript中的原子(Atom)是QoBean中提出的一个重要概念,借鉴自erlang,但具有与后者不同的含义。在QoBean里,Meta(元)与Atom(原子)是一对概念,前者表明执行系统中的最小单位,后者表明数据系统中的最小单位。QoBean约定这两个东西为一切元编程的初始,即最小化的执行系统与数据系统模型。 有什么意义呢?没什么意义。这只具备理论上的完整性。为了描述这种完整性,QoBean写了两个相当无厘头的函数: // Atom system // - atom object for ...

继承与混合,略谈系统的构建方式

这两天在读kissy的源代码,从一开始我就对它的mix()函数充满了敌意。因为无论从哪个角度来看,那都是一个极其低效的实现。不过深入了解这个框架之后,我对kissy中的新的系统构建的模型产生了兴趣,而这种系统构建的方式,也正是由mix()所带来的。 一、对象系统 我们先了解一下对象系统。在《JavaScript语言精髓与编程实践》中谈到过,面向对象系统有三种对象的继承方式,即原型、类和元类。这三种方式都可以构建大型对象系统。在后续讨论之前,我们在名词概念上做一些强调,所谓“对象系统”,是指由“一组对象构成的系统” ...

前端要给力之:代码可以有多烂?

1、烂代码是怎么定义的? !KissyUI是淘宝Kissy这个前端项目的一个群,龙藏同学在看完我在公司内网的“读烂代码系列”之后就在群里问呵:烂代码是怎么定义的? 是呵,到底什么才算烂代码呢?这让我想到一件事,是另一个网友在gtalk上问我的一个问题:他需要a,b,c三个条件全真时为假,全假时也为假,请问如何判断。 接下来KissyUI群里的同学给出了很多答案: // 1. 圆心 if (a&&b&& ...