![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
文章平均质量分 79
aimingoo
这个作者很懒,什么都没留下…
展开
-
在块语句中的函数声明
在ES6之后的兼容性规范要求,块级作用域中的函数声明语句将采用“静态提升”,并在(其所在的)变量作用域中采用隐式地进行“动态提升”。但这种复杂的方式并不能完全实现早期JS的相关特性,这是它与使用者的预期存在差异的根本原因。原创 2021-03-27 19:39:57 · 2062 阅读 · 1 评论 -
关于废止proposal-class-fields提案的建议
在本文中,我会仔细分析新提案中field的概念矛盾,并揭示它实质上是作用域设计上的倒退。并且,该提案的错误实现,将不可避免地导致灾难。Reject it! No more choices!1. 概念:“Not Fields”!对象在定义上是“属性集(object is collection of properties)1”。因此如果Field不是属性,则它必然不属于“对象成员(colle...原创 2018-10-17 00:19:47 · 2737 阅读 · 0 评论 -
私有属性的实现
在tc39的提案中,这一特性被称为"private field",据说是为了避免与property这个传统的名字出现概念冲突。这简直是扎了裤脚放屁——还要称比脱了裤子文雅!为什么这么讲呢?因为一旦引入了所谓“private filed”,就预示着还会有“public field”等等之类,而这与传统的property又有什么不同吗?还是叫“私有属性(private property)”吧,别再...原创 2018-10-15 11:09:18 · 2610 阅读 · 0 评论 -
科普:"Field提案"是什么东东?
上次掺和JavaScript的事,是说JavaScript语言有值的问题;再往前一年,就是在“红绿灯大战”中讨论Promise了。这细数起来,都是两三年前的旧事了。但我还是跟进JavaScript的。最新近的事,是持续地讨论这个所谓“TC39提案”的事情。本以为真关心的人并不多,但前两天连老宋都转了篇贴子过来,“这帮人要把js折腾成啥样子啊”,老宋说。“啥样子?”1. 导致太下大乱的“Fie...原创 2018-10-18 11:00:54 · 1355 阅读 · 1 评论 -
No prefix! operator is Ok!
所有在我对原有提案的修改中,核心不是“不用#字符”,而是将它从一个前缀字符,变成了一个操作符。这一方面是使“声明语法”与“表达式运算”分开,另一方面也让这些修改与ECMAScript规范保持在语法上的一致性。原有提案:https://github.com/tc39/proposal-class-fields修改的提议:#issuecomment-4295335321. 为什么是":“而不...原创 2018-10-13 21:10:17 · 1362 阅读 · 0 评论 -
本届FEDay的讲演内容在这里了
就是前端日(https://fequan.com/2018/)了。这是第四届了,呵呵,谢邀。我的主题是《无类继承:JavaScript面向对象的根基》,主要是从JS中面向对象的历史讲起,一直到元类继承的实现。资源下载在这里:https://download.csdn.net/download/aimingoo/10616853或者可以通过github下载,在这里:https:/...原创 2018-08-21 10:31:51 · 1347 阅读 · 0 评论 -
元类型系统是对JavaScript内建概念的补充
本文是一个系列,包括: JavaScript的元系统 JavaScript中创建原子的几种方法 元类型系统是对JavaScript内建概念的补充(本文) JavaScript的类型系统一贯是反人类的,以至于JavaScript之父Eich都会跳出来说“我做错了”。但是这并不是说它的整个类型系统就是不可理解的,相反,它提供了观察这门语言的多个不同角度。远古...原创 2018-08-28 10:44:37 · 2262 阅读 · 0 评论 -
JavaScript中创建原子的几种方法
本文是“JavaScript的元语言”系列中的一篇。其它内容参见: * JavaScript的元系统JavaScript中可以通过Object.create(null)来创建原子,这是非常自然而又易于理解的方式。不过也有一些其它的方法来实现相同的效果,虽然在概念上有所不同,但是它们创建的一样是“原子对象”。创建原子使用Object.create()// 方法1...原创 2018-08-26 13:47:13 · 2595 阅读 · 0 评论 -
前端要给力之:语句在JavaScript中的值
语句在JavaScript中的值 这两天在写语言精髓那本书的第三版,讨论到ES6跟ES5中间对“语句的值”的不同处理。正好Weibo上也有同学对这个问题有兴趣,所以专门整理了这篇。 写博客可以啰嗦点,写书就不行了。所以这篇文章跟书上能看到的还是会不一样的。问题是:语句有值吗?很不幸,我们面临的的确是一门连语句都有值的语言。在JavaScript中,代码是按语句行(Statement原创 2016-04-12 19:48:08 · 7552 阅读 · 0 评论 -
确定的世界 - The Promise's World
有这样的一个世界在持续地向前推进着,这个世界充满着无穷多个选择,也就是说有无穷多的可能;但对每一个选择来说,存在决定/未决两种状态,如果已经决定,则只能有yes/no两种结果之一。那么,这个世界是确定的么?原创 2015-08-10 17:35:08 · 5144 阅读 · 1 评论 -
前端要给力之:红绿灯大战中的火星生命-Promise
目录目录传说的开始看到winter的代码我的第一反应是全无promise的精髓其实我了解Promise也是新近的事情我与Promise后来发生的故事红绿灯大战的亲历实录Promise写出来怎么会是这个样子欢迎回到火星感谢米粽粽同学提到我的一篇旧文第一步的抽象一点说明前提重新定义问题Promise的编程基础之逻辑过程如何确认一个数据就绪然后then只能处理一个数据最后任何原创 2015-04-12 21:35:15 · 19253 阅读 · 5 评论 -
前端要给力之:分解对象构造过程new()
本文讨论JavaScript中的对象创建运算new。需要说明的是,本文所讨论的“将new()过程分解为多个步骤”,并非一般js开发中的所须技巧,而是在js来构建OOP系统的必要技术。 一、JavaScript构造器与构造过程的特点JavaScript中通过以下方式声明和使用构造器:function MyObject() { this.xxx = 1;}MyObject.prototype.原创 2010-12-29 14:57:00 · 17085 阅读 · 12 评论 -
绿皮书再版!ECMAScript 5th有讲呵!
终于可以发博来讲这本书了。哈哈哈,终于印出来了哇!从去年9月一直等到现在,同志们啊,我被催得好那个悲【3月19日补充】各大网上书店开始有售:京东:http://book.360buy.com/10950776.html当当:http://product.dangdang.com/product.aspx?product_id=22628482china-pub:ht原创 2012-03-16 20:59:32 · 10878 阅读 · 6 评论 -
《JavaScript语言精髓与编程实践(第二版)》勘误【2012.12】
相关信息可以看这里:http://blog.csdn.net/aimingoo/article/details/7362552本文只发勘误。============================================在第二印次中,已经处理的勘误:12处(该版有两个印次,第二印次已经修订了这些勘误)===========================原创 2012-12-12 21:31:58 · 11329 阅读 · 6 评论 -
迟来的真相:关于JavaScript的历史
今天看到李松峰老师(@李松峰)发布了新版的《JavaScript高级程序设计》(第三版)的预售消息,于是跑去当当(在这里)仔细地读了一下新版有关“JavaScript起源”的段落。读罢,心中的种种不安一扫而空:在这本书的第三版,总算还原了JavaScript起源的真相。 话说有一本《JavaScript权威指南》,以及这本《JavaScript高级程序设计》,算这些年对前端界/JavaSc原创 2012-03-22 15:13:39 · 20738 阅读 · 13 评论