共计 46 篇文章

"Field提案"是什么东东?

本文是系列文章,包括: "Field提案"是什么东东(本文) 关于废止proposal-class-fields提案的建议 - 在这里 私有属性的实现 - 在这里 No prefix! operator is Ok! - 在这里 (未完待续) 本文是对一份tc39提案的讨论。原有提案:https://github.com/ ...

私有属性的实现

本文是系列文章,包括: "Field提案"是什么东东 - 在这里 关于废止proposal-class-fields提案的建议 - 在这里 私有属性的实现(本文) No prefix! operator is Ok! - 在这里 (未完待续) 本文是对一份tc39提案的讨论。原有提案:https://github.com/ ...

No prefix! operator is Ok!

本文是系列文章,包括: "Field提案"是什么东东 - 在这里 关于废止proposal-class-fields提案的建议 - 在这里 私有属性的实现 - 在这里 No prefix! operator is Ok!(本文) (未完待续) 本文是对一份tc39提案的讨论。原有提案:https://github.com/ ...

元类型系统是对JavaScript内建概念的补充

本文是一个系列,包括: JavaScript的元系统 - 在这里 JavaScript中创建原子的几种方法 - 在这里 元类型系统是对JavaScript内建概念的补充(本文) JavaScript的类型系统一贯是反人类的,以至于JavaScript之父Eich都会跳出来说“我做错了”。但是这并不是说它的整个类型系统就是不可理解的,相反,它提供了观察这门语言的多个不同角度。 远古JavaScript中的类型系统 在远古时期(我是指JavaScript 1.0)中,JavaScript的世界里还并没有“原型”这个东西,而且undefined也是一个奇葩的存在。 ...

JavaScript中创建原子的几种方法

本文是一个系列,包括: JavaScript的元系统 - 在这里 JavaScript中创建原子的几种方法(本文) 元类型系统是对JavaScript内建概念的补充 - 在这里 JavaScript中可以通过Object.create(null)来创建原子,这是非常自然而又易于理解的方式。不过也有一些其它的方法来实现相同的效果,虽然在概念上有所不同,但是它们创建的一样是“原子对象”。 创建原子 使用Object.create() // 方法1 atom = Object.create( ...

JavaScript的元系统

JavaScript的元系统 本文是对在第四届FEDay中分享的《无类继承:JavaScript面向对象的根基》的进一步讨论。也是对开源项目@aimingoo/metameta的解析。 本文是一个系列,包括: JavaScript的元系统(本文) JavaScript中创建原子的几种方法 - 在这里 元类型系统是对JavaScript内建概念的补充 - 在这里 以及相关下载: 资源分享:第四届FEDay讲演主题 - 在这里 ECMAScript中只有两处提及到“Meta”这个概念, ...

三本免费电子书齐齐完工了

首先感谢图灵出版社,能许可我将之前的《大道至易》拿回来重制并发布免费电子书。这也是此次选择图灵出版社、图灵社区来首发这套电子书的原因。 大道至易:实践者的思想 我的架构思想:基础模型、理论与原则 程序原本 这套书同时发行了多种格式的电子版,包括ePub、eBook、PDF、mobi等。如果你使用桌面电脑,我推荐你阅读PDF格式的电子版。PDF格式的电子版采用了标准纸质书的排版方法,包括页眉、页脚、奇偶页设置,以及目录等等,因此建议阅读时使用“双页” ...

前端要给力之:语句在JavaScript中的值

这两天在写语言精髓那本书的第三版,讨论到ES6跟ES5中间对“语句的值”的不同处理。正好Weibo上也有同学对这个问题有兴趣,所以专门整理了这篇。 写博客可以啰嗦点,写书就不行了。所以这篇文章跟书上能看到的还是会不一样的。 问题是:语句有值吗? 很不幸,我们面临的的确是一门连语句都有值的语言。在JavaScript中,代码是按语句行(Statement Lists)来解释的,所以eval()本质上还是执行的语句行,例如: eval("1+2+3& ...

迟来的真相:关于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 在书中使用到了新版( ...

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语言;并且, ...