在块语句中的函数声明 在ES6之后的兼容性规范要求,块级作用域中的函数声明语句将采用“静态提升”,并在(其所在的)变量作用域中采用隐式地进行“动态提升”。但这种复杂的方式并不能完全实现早期JS的相关特性,这是它与使用者的预期存在差异的根本原因。
科普:"Field提案"是什么东东? 上次掺和JavaScript的事,是说JavaScript语言有值的问题;再往前一年,就是在“红绿灯大战”中讨论Promise了。这细数起来,都是两三年前的旧事了。但我还是跟进JavaScript的。最新近的事,是持续地讨论这个所谓“TC39提案”的事情。本以为真关心的人并不多,但前两天连老宋都转了篇贴子过来,“这帮人要把js折腾成啥样子啊”,老宋说。“啥样子?”1. 导致太下大乱的“Fie...
关于废止proposal-class-fields提案的建议 在本文中,我会仔细分析新提案中field的概念矛盾,并揭示它实质上是作用域设计上的倒退。并且,该提案的错误实现,将不可避免地导致灾难。Reject it! No more choices!1. 概念:“Not Fields”!对象在定义上是“属性集(object is collection of properties)1”。因此如果Field不是属性,则它必然不属于“对象成员(colle...
私有属性的实现 在tc39的提案中,这一特性被称为"private field",据说是为了避免与property这个传统的名字出现概念冲突。这简直是扎了裤脚放屁——还要称比脱了裤子文雅!为什么这么讲呢?因为一旦引入了所谓“private filed”,就预示着还会有“public field”等等之类,而这与传统的property又有什么不同吗?还是叫“私有属性(private property)”吧,别再...
No prefix! operator is Ok! 所有在我对原有提案的修改中,核心不是“不用#字符”,而是将它从一个前缀字符,变成了一个操作符。这一方面是使“声明语法”与“表达式运算”分开,另一方面也让这些修改与ECMAScript规范保持在语法上的一致性。原有提案:https://github.com/tc39/proposal-class-fields修改的提议:#issuecomment-4295335321. 为什么是":“而不...
元类型系统是对JavaScript内建概念的补充 本文是一个系列,包括: JavaScript的元系统 JavaScript中创建原子的几种方法 元类型系统是对JavaScript内建概念的补充(本文) JavaScript的类型系统一贯是反人类的,以至于JavaScript之父Eich都会跳出来说“我做错了”。但是这并不是说它的整个类型系统就是不可理解的,相反,它提供了观察这门语言的多个不同角度。远古...
JavaScript中创建原子的几种方法 本文是“JavaScript的元语言”系列中的一篇。其它内容参见: * JavaScript的元系统JavaScript中可以通过Object.create(null)来创建原子,这是非常自然而又易于理解的方式。不过也有一些其它的方法来实现相同的效果,虽然在概念上有所不同,但是它们创建的一样是“原子对象”。创建原子使用Object.create()// 方法1...
JavaScript的元系统 本文是对在第四届FEDay中分享的《无类继承:JavaScript面向对象的根基》的进一步讨论。也是对开源项目@aimingoo/metameta的解析。ECMAScript中只有两处提及到“Meta”这个概念,一处是说明ECMAScript的规范类型(a specification type)是用于描述和实现语言类型(language types)的元值(meta-values),另...
本届FEDay的讲演内容在这里了 就是前端日(https://fequan.com/2018/)了。这是第四届了,呵呵,谢邀。我的主题是《无类继承:JavaScript面向对象的根基》,主要是从JS中面向对象的历史讲起,一直到元类继承的实现。资源下载在这里:https://download.csdn.net/download/aimingoo/10616853或者可以通过github下载,在这里:https:/...
怎么会有两个“原本” 今天很突然地发现裘宗燕老师还翻译了一本《编程原本》,英文名是”Elements of Programming”,是C++的STL库之父Alexander Stepanov,简单地说就是“一个大牛”。而看到这个书名的时候,就是一惊:撞衫撞脸撞书名,我那本《程序原本》的英文名原本也是打算用”Elements of Programming”……
小述系列最终篇:说说《大道至易:实践者的思想》 这最后一篇小述,是写《大道至易》的。我想我又是犯了文绉绉的老毛病,把这篇“述”写成了自说自话的道可道与非常道。之所以写得这么晦涩难看,除了拽拽文之外,其实可能最大的原因还是自己吃得不够透彻,所以表达上就深入得进去,却浅不出来…… 所谓大道,终归是难写的,所以还是请大家原谅我的这些不成熟吧。 本电子书可自由下载和传播。霍泰稳先生的序认识泰稳兄已经很多年,第一次请他写序。之所以邀他
电子书《我的架构思想》小述 接下来谈谈《我的架构思想》。上一篇是“电子书《程序原本》小述”,在这里:http://blog.csdn.net/aimingoo/article/details/75506782。 本电子书可自由下载和传播。这些年来我所谈的“架构思想”在2007年,我还在盛大的时候曾做过一次名为《设计师的实战过程》的内部分享,这个分享现今在CSDN还能下载到(在这里)。但在此之后,我便再也没有讲过“设
重发:“设计师的实战过程”下载 这大概是我最后一次讲过的“软件设计”话题了,包括音频和PPT。需要的同学请自行下载。Chapter1~3,下载Chapter 1介绍: http://blog.csdn.net/aimingoo/article/details/2735597 下载(Part1~2): http://download.csdn.net/source/562755 http://download.csdn.n
电子书《程序原本》小述 《程序原本》作为电子书首发已经一个月了(下载附后),它到底是一本怎么样的书呢?我想站在我自己的角度对它做一些阐述,或是有利于对它的理解与传播的。 本电子书可自由下载和传播。什么是“原本”书名取自于《几何原本(Euclid’s Elements)》,因此这个“原本”,其实原意应从Elements来找,一般来说理解成“不可或缺的、核心的要素,或元素”就好了。《程序原本》确实就是想从这个角度来