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

1、JavaScript 的历史;

2、JavaScript 与 ECMAscript 的关系;

答:      在上世纪 90 年代,互联网浪潮来袭,使用互联网的人越来越多,网页也越来越复杂。那时表单是通过传递给服务器进行验证,如果,某必选字段没填,或者格式不对,点击提交,服务器验证后再把错误信息回传给客户端。在那个网速极低,拨号上网的时代,导致表单填写效率极低。于是网景 (Netscape)公司决定开发一种脚本语言,来解决这个问题,在客户端完成表单验证。编写 JavaScript 的人叫布兰登·艾奇。当初该语言命名为 LiveScript,据说为了蹭 Java 的热度,临时改为 JavaSciprt,并在 Netscape 自家浏览器(Netscape Navigator)实现。随后微软在自家浏览器(IE)中也加入 JavaScript 实现,称为 Jscript。JavaScript 与 Jscript 之间的不兼容渐渐发生问题。标准化成为当时业界的共识。于是欧洲计算机制造协会着手编制标准,并称为 ECMAscript。

答:      ECMAscript 定义了该语言的标准(包括该语言的语法、数据类型、关键字、操作符、对象等……),JavaScript 指的是 ECMAscript 标准的实现。说到实现,一个完整 JavaScript 实现,除了 ECMAscript 之外,必不可少的还有文档对象模型(DOM)和浏览器对象模型(BOM)。DOM 指的是针对 XML 及扩展到 HTML 文档应用编程接口(API)。DOM 将文档映射成各种节点,通过 DOM 一些属性和方法来增加、替换、删除文档的每个部分。那么 DOM 标准是由 W3C 制定,在标准之前 IE 和 Netscape Navigator 已经有 DOM 实现,历史上称为(DOM 0 级)。W3C 制定的标准有 DOM 1 级,它包含 DOM 核心和 HTML-DOM。 DOM 2 级、DOM 3 级在原来的基础上增加一些扩展。BOM 指的是文档以外的 API,它包括浏览器本身,可以说 window 对象都属于 BOM。回过来说说 ECMAscript,它也有好几个版本。我们常说的是第三版,第五版。据说第四版过于激进,把语言本身改动很大,最终并没有发布。浏览器对 ECMAscript 各个版本实现也不相同。目前主流新版本浏览器(IE、safari、chrome、firefox、opera)能完整实现 ECMAscript 第五版……

而现在,网页的特效和交互大多用 JavaScript 编写。它的作用远不止设计之初的表单验证。

原创文章,版权所有,转载请注明出处!

(2017.10.10) 我对 JavaScript 历史的认识的更多相关文章

  1. 10个最好的 JavaScript 动画库和开发框架

    虽然 CSS3 动画功能能够让我们以简单轻松的方式实现动画效果,但是浏览器兼容性问题让人头疼.不过不用担心,我们还有另外的武器——JavaScript,它同样可以帮助你实现各种各样的动画效果,而且借助 ...

  2. MyEclipse 2017 CI 10 发布(附下载)

    挑战全年最低价!MyEclipse线上狂欢仅剩最后3天!立即抢购>> 2017 CI 10主要是一个错误修复版本,这个版本为Angular和TypeScript工具提供了重要的修复,并为I ...

  3. 欢迎来怼-Alpha周(2017年10月19)贡献分配规则和分配结果

    .从alpha周(2017年10月19日开始的2周)开始,提高贡献分比重. 贡献分 : 团队分 = 1 : 5 教师会在核算每位同学总分时按比例乘以系数. 每位同学带入团队贡献分10分,如果团队一共7 ...

  4. 10个强大的Javascript表单验证插件推荐

    创建一个JavaScript表单验证插件,可以说是一个繁琐的过程,涉及到初期设计.开发与测试等等环节.实际上一个优秀的程序员不仅是技术高手,也应该是善假于外物的.本文介绍了10个不错的JavaScri ...

  5. 2017年10月31日结束Outlook 2007与Office 365的连接

    2017 年10月31日 ,微软即将推出 Office 365中Exchange Online邮箱将需要Outlook for Windows的连接,即通过HTTP Over MAPI方式,传统使用R ...

  6. 2017.10.10 java中的继承与多态(重载与重写的区别)

    1. 类的继承 继承是面向对象编程技术的主要特征之一,也是实现软件复用的重要手段,使用继承特性子类(subclass) 可以继承父类(superclass)中private方法和属性,继承的目的是使程 ...

  7. 10 个优秀的JavaScript开发框架

    阅读目录 TouchStone.js Meteor Knockout Enyo.js Reactive-coffee ExtJS Aurajs Cappuccino canjs Feathersjs ...

  8. JavaScript——历史与简介

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

  9. iOS 10.10 10.11 10.12 安装升级CocoPods

    CocoPods简介 CocoaPods是一个用Ruby写的,负责管理iOS以及OSX系统下的一个第三方类库管理工具,通过CocoaPods,我们可以集中,统一的管理第三方开源库.当然这些库徐亚Coc ...

随机推荐

  1. linux 中spfvim安装

    1. 安装 git 1.1 安装依赖的包: curl          curl-devel     zlib-devel         openssl-devel      perl      c ...

  2. Spring boot 学习 四:spring boot 配置文件 application.yml

    一 关于端口: spring boot的默认端口是8080, 如果想更改的话,在配置文件中做如下配置.ServerProperties.class会去读取这个值. server: port: 另外一种 ...

  3. 创建maven parent project & module project

    1.命令方式: 1)Create the top-level root: mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo.arc ...

  4. elasticsearch2.x安装部署

    目录 一.安装es以及插件 二.建立索引和映射,添加数据 三.备注 一.安装es以及插件 ElasticSearch-2.3.1版本,系统为CentOS 7.0位. 对应的网上下载地址都有: elas ...

  5. day6 面向对象(3)

    继承 1.1   类和类之间的常见关系. 1:既然继承是描述类和类之间的关系,就需要先来了解类和类之间的常见关系 1.1.1   现实生活的整体与部分 举例说明 1:现实生活 1:学生   是人 2: ...

  6. 一、初识mybatis

    orm框架 1.配置文件(配置别名.mapper xml文件.数据库连接.事务) 2.创建SqlSessionFactory,创建SqlSession 3.创建model,创建Mapper xml文件 ...

  7. php 判断手机号运营商

    /* 移动:134.135.136.137.138.139.150.151.157(TD).158.159.187.188 联通:130.131.132.152.155.156.185.186 电信: ...

  8. AGC001 F - Wide Swap【线段树+堆+拓扑排序】

    给出的模型很难搞,所以转换一下,记p[i]为i这个数的位置,然后相邻两个p值差>k的能交换,发现使原问题字典序最小也需要使这里的字典序最小 注意到p值差<=k的前后顺序一定不変,那么可以n ...

  9. AGC001 D - Arrays and Palindrome【构造】

    把回文串的相等关系连一下,发现最后要求的是一笔画问题 注意到奇数长度的中间有一个单独没有连线的,所以a数组至多有两个奇数值 如果没有奇数,那么b在最前面放一个1,然后把a[1]~a[m-1]放上去,这 ...

  10. 洛谷 P2048 [NOI2010]超级钢琴(优先队列,RMQ)

    传送门 我们定义$(p,l,r)=max\{sum[t]-sum[p-1],p+l-1\leq t\leq p+r-1 \}$ 那么因为对每一个$p$来说$sum[p-1]$是一个定值,所以我们只要在 ...