话说 JavaScript 其实是诞生在一个特殊的时期,20世纪90年代,正值第三次科技革命时期,互联网刚开始进入人们的生活。设想一下,在网速只有几十比特的那个时代,在登录注册时要花上很长一段时间等待服务器传回验证信息,会是怎样一种体验?简直是嘴上也不笑眯眯,心里千万句mmp吧?为了解决这个问题,网景公司着手设计出了JavaScript,与它的浏览器一起捆绑推出。

这里有个问题,那就是Java跟JavaScript有什么关系呢?毕竟单词里都带有相同的“Java”字节,难免会让人把他们联系在一起啊。这里只要记住Java跟JavaScript没有半毛钱关系,如果说勉强算得上有关系的话,那就是JavaScript在创立之初本名叫LiveScript,但是因为当时Java风头正足,为了蹭热点,改了名。

JavaScript在诞生之初,有一些克隆兄弟,比如微软家推出的JScript。我们知道,克隆人的出现会影响社会秩序,编程语言亦然。论天下之大事,分久必合,合久必分,这个时候就继续一个统一的标准对这些脚本语言进行规范了,于是ECMA组织了一些大公司的程序员开始策划这个规范,ECMAScript第一代就这样诞生了。现在我们说的JavaScript其实是说对ECMAScript的实现。

ECMAScript第一代出现后,很快就繁衍到了第二代,但是这一代的ECMAScript基本继承了第一代的特性,对JavaScript的语法、句法进行描述,没有做什么改动。到第三代的时候,ECMAScript已经开始成熟,可以被称为一门编程语言了,其中加入了新的的描述,比如支持错误处理、正则表达式等。第四代的ECMAScript可以说是废弃的一代,因为它的欲望太强了,试图改朝换代,把旧有的ECMAScript改得面目全非,最终没有被组织通过。第五代的ECMAScript可以说是经历了一个漫长的讨论孕育期终于在2009年发布了正式版,对ECMAScript特性进行了进一步的描述,包括引入模式,弥补JAVAScript松散的语言结构缺点,提供了更多方便快捷的新方法等。紧随着ECMAScript5之后,2015年演化出了ECMAScript6,这一代的ECMAScript是他自己看起来更像是一门系统的编程语言了,添加了箭头年符号简化函数的写法,强化了对象字面量等都使他看起来更像是年轻力壮的青年男子。进入壮年后的ECMAScript发展更加迅速了,2016年推出了第六代,新增了Array.prototype.includes和幂运算符。2017年又奋起直追,推出了第八代,新增了字符串填充、对象值遍历、对象的属性描述符获取、 函数参数列表与调用中的尾部逗号、异步函数、共享内存与原子操作等。

所以,时至今日,ECMAScript也就是JavaScript的核心标准已经发展到了第八代,但是比较经常听到周围人提起的依然是ECMAScript6。

本文来自于作者原创,如需转载请告知

JavaScript 历史漫谈的更多相关文章

  1. JavaScript(简介)【Javascript历史】

    学习一门知识应该了解其背景,很多人认为会用就行,起初我也是这么认为的,但后来才知道对起源的了解也很必要,从事javascript开发5年,今天开始总结一些笔记,分享下. 一.什么是JavaScript ...

  2. JavaScript——历史与简介

    上一篇博文距离现在已经四个月了,一直想写些什么无奈工作比较忙碌.我的恩师老王在毕业聚餐那天带着一声酒气告诉我一定要把博客坚持写下去,所以今天下决心要开始这个新的篇章. 之所以想要从头写一个关于Java ...

  3. (2017.10.10) 我对 JavaScript 历史的认识

    关于 JavaScript 的历史和来由相信学过 JavaScript 的小伙伴都能说出一二.我看过一些入门书籍第一章或者前言部分都有介绍,但是一直没捋清这段历史.今天通过两个问题,来加深我对 Jav ...

  4. JavaScript历史和标准

    不管新手老手, 学门语言如果不简单了解这门语言谁创立的, 什么时候, 现在由谁来维护, 规范在哪? 总感觉, 少了点什么, 我就是这样. 历史 1994年美国网景(Netscape)公司发布自己的浏览 ...

  5. JavaScript事件漫谈

    内容概要: event对象,事件在多个浏览器中的兼容,事件的传播机制,JS自定义事件,jQuery的自定义事件的绑定与触发 Event对象 Event对象属于HTML DOM对象.Event 对象代表 ...

  6. 梅须逊雪三分白,雪却输梅一段香——CSS动画与JavaScript动画

    CSS动画并不是绝对比JavaScript动画性能更优越,开源动画库Velocity.js等就展现了强劲的性能. 一.两者的主要区别 先开门见山的说说两者之间的区别. 1)CSS动画: 基于CSS的动 ...

  7. 前端之JavaScript基础

    前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript历史 1992年Nombas开发出C ...

  8. javascript 基础

    javascript概述: javascript历史: * 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEas ...

  9. 前端er是否忽略了某些东西?——读《ppk谈JavaScript》

    关于书 “不知道ppk的网站QuirksMode,说明你可能还没有真正成为资深的JavaScript程序员.” ——Roger Johansson,瑞典资深Web专家. ppk是世界级前端技术专家,W ...

随机推荐

  1. maven pom.xml 详细

    一.什么是POM Project Object Model,项目对象模型.通过xml格式保存的pom.xml文件.作用类似ant的build.xml文件,功能更强大.该文件用于管理:源代码.配置文件. ...

  2. protobuf 编码实现解析(java)

    一:protobuf编码基本数据类型 public enum FieldType { DOUBLE (JavaType.DOUBLE , WIRETYPE_FIXED64 ), FLOAT (Java ...

  3. JAVA正则表达式 Pattern和Matcher

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 1.简介:  java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. ...

  4. system进程占用80端口

    服务器规划:apache分配80,iis分配其他端口 理论上,只需要把iis 默认站点的80端口改成其他端口就可以了,可是发现改了apache80端口还是用不了, cmd查了下,发现system进程占 ...

  5. [one day one question] webpack打包压缩 ES6 js、.vue报错

    问题描述: 报错: ERROR in js/test.js from UglifyJs Unexpected token punc ?(?, expected punc ?:? [js/test.js ...

  6. 【故障】MySQL主从同步故障-Slave_SQL_Running: No

    转自:http://www.linuxidc.com/Linux/2014-02/96945.htm 故障现象:进入slave服务器,运行:mysql> show slave status\G  ...

  7. relative 和 absolute 定位关系

    问题: relative 和 absolute 之间的关系是什么?有什么区别? 那,答案呢? relative  相对定位, 以自己没有设置relative 属性之前的位置来定位,占用没有设置rela ...

  8. easyUI中点击datagrid列标题排序

    easyUI中点击datagrid的排序有两种,一种是本地的,一种是服务器的.本地的只能排序当前页,而服务器的可以对全部页进行排序.这里主要是分享下服务器排序. 1.为datagrid添加属性remo ...

  9. atom中开发vue常用插件

    atom: 开发利器,界面友好,配色出色,好用的插件众多. language-vue: 这个是首推,因为它就是为vue而生的呀,支持很多vue里的提示.在空的vue页面敲tem,vue模板的提示就自动 ...

  10. Python推荐算法学习1

    1.闵可夫斯基距离 闵可夫斯基距离可以概括曼哈顿距离与欧几里得距离.  其中r越大,单个维度差值大小会对整体产生更大的影响.这个很好理解,假设当r=2时一个正方形对角线长度,永远是r=3时正方体对角线 ...