热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaScript20年

原文链接: https://cn.history.js.org/    原文简介 本书由 Javascript 之父 Brendan Eich 与 E

原文链接: https://cn.history.js.org/

 

 

 

Javascript 20 年 - 文章图片

 

原文简介

 

本书由 Javascript 之父 Brendan Eich 与 ES6 规范首席作者 Allen Wirfs-Brock 联合编写,详细记载和解读了自 1995 年语言诞生到 2015 年 ES6 规范制定为止,共计 20 年的 Javascript 语言演化历程。全书不仅讲解了大量语言技术细节层面的演进,更复盘了更高层面上规范制定与标准博弈中的历史成败,是一部讲述人类如何在商业与技术上的竞争合作中促进产业发展的故事。

 

这个故事相当漫长而复杂。全文分为四个部分,每部分都对应 Javascript 演化历程中的一个主要阶段。各部分之间还有一段简短的插曲,介绍彼时的开发者们是如何看待与使用 Javascript 的。

 

这四个部分依次如下:

 

  1. 语言诞生(The Origins of Javascript),介绍了 Javascript 的创建与早期发展,包括语言的诞生背景、命名方式、初始特性及其设计理念等。这一节还追溯了它在 Netscape 与其他公司最初的演化,例如微软的 JScript。
  2. 创立标准(Creating a Standard),介绍了从 Javascript 到 ECMAScript 标准的历程。这主要涵盖 Javascript 标准化工作的启动、规范的创建、相关贡献者以及决策方式等。
  3. 改革失败(Failed Reformations),介绍了在 Eich 离开后,缺乏「仁慈独裁者」的 ECMAScript 委员会修改语言的失败尝试。这主要涉及委员会的分裂、对 ES4 的两轮投入,以及 Flash 与 ActionScript 在其中的渊源等。
  4. 继往开来(Modernizing Javascript),介绍了 2009 年 ES5 与 2015 年 ES6 这两个成功标准背后的故事,主要包括对 ES5 与 ES6 的目标、重大基础性更改与重要新特性的介绍与回顾。

 

目录

 

  • 语言诞生
    • 史前时代
    • Brendan Eich 加入网景
    • Mocha 的故事
    • Javascript 1.0 与 1.1
    • Javascript 语法
    • 数据类型与表达式
    • 对象
    • 函数对象
    • 内置库
    • 执行模型
    • 迷惑行为与 Bug
    • 冗余声明
    • 隐式类型转换与 == 运算符
    • 32 位算术
    • this 关键字
    • Arguments 对象
    • 对数值属性键的特殊处理
    • 原始值的属性
    • Javascript 中的 HTML 注释
    • 微软 JScript
    • 从 Mocha 到 SpiderMonkey
  • 插曲:风评被害
  • 创立标准
    • 寻找场地
    • 首次 TC39 会议
    • 编写规范
    • 命名标准
    • ISO 快速通道
    • 定义 ECMAScript 3
  • 插曲:Javascript 不需要 Java
    • 布道师
    • 富互联网应用与 AJAX
    • 浏览器博弈论
  • 改革失败
    • 不满于成功
    • 对 ES4 的第一轮尝试
    • 另一条死路
    • Flash 与 ActionScript
    • 对 ES4 的第二轮尝试
    • 重置 TC39-TG1
    • 重新设计 ES4
    • 阻力
    • 寻求和谐
  • 插曲:认真对待 Javascript
    • Javascript 性能革命
    • CommonJS 和 Node.js
    • 成为浏览器通用运行时的 Javascript
  • 继往开来
    • 开发 ES3.1/ES5
    • ES5 技术设计
    • 严格模式
    • Getter,Setter 和对象元操作
    • 对象的完整性与安全性特性
    • 活动对象(Activation Object)的移除
    • 其他 ES5 特性
    • 实现与测试
    • 从 Harmony 到 ECMAScript 2015
    • 开始投入 Harmony
    • 稻草人(Strawman)与目标
    • 倡导者模型
    • 选择特性集
    • 开始编写规范
    • One Javascript
    • Brendan 的梦想
    • 重新打造规范
    • 重组规范结构
    • 新的术语
    • 新的语义种类
    • ES2015 语言特性
    • Realms、Jobs、Proxies 和元对象编程(MOP)
    • 块级声明作用域
    • 模块
    • 箭头函数
    • 其他特性
    • 延期和被放弃的特性
    • Harmony 转译器
    • 完成 ECMAScript 2015
  • 总结
  • 致谢
  • 附录
    • 登场人物
    • 登场组织
    • 术语表
    • 缩略语和首字母缩写词
    • 时间线
    • 第一部分:语言诞生
    • 第二部分:创立标准
    • 第三部分:改革失败
    • 第四部分:继往开来
    • 1995 年 12 月 4 日的 Javascript 发布公告
  • 备注
  • 参考文献


推荐阅读
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 前端图片合成技术_靠谱的前端需要做哪些准备?
    Web前端开发源于传统的互联网,互联网普及让人才需求量居高不下,随着移动互联网的高速发展,移动终端的前端开发也越来越受到重视, ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
author-avatar
xaony23625
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有