关于 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. Mysql 创建存储过程 更新表

    DELIMITER // use protocoldb// drop procedure if exists sp_protocol_Update// create procedure sp_prot ...

  2. WPF GridViewColumn Sort DataTemplate

    wpf的GridViewColumn的排序要用到ICollectionView   的SortDescriptions. SortDescriptions数组里是 SortDescription, S ...

  3. Android应用如何反馈Crash报告

    转自:http://www.cnblogs.com/draem0507/archive/2013/05/25/3099461.html 一.为什么要Crash crash可以理解成堕落,垮台.按照我们 ...

  4. UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)

    2017-03-16 11:23:29.601 1238 ERROR nova.compute.manager [instance: 3f195047-250a-4eb5-8da0-63bea6e26 ...

  5. SoapUI测试登录

    实际登录过程为: 1. 打开/login页面 2. 登录 3. 自动调整至/dashboard页面 SoapUI的设计上,每一次请求后,都会清理掉cookie,于是设计的测试登录过程如下: 1. po ...

  6. 细说ASP.NET Forms身份认证 别人写的不过很透彻就转来了以后用时再看

    阅读目录 开始 ASP.NET身份认证基础 ASP.NET身份认证过程 如何实现登录与注销 保护受限制的页面 登录页不能正常显示的问题 认识Forms身份认证 理解Forms身份认证 实现自定义的身份 ...

  7. oracle知识点小结1

    总结一下这几天学习oracle的琐碎知识点. 创建表空间,用户的步骤: 1, sql / as sysdba登陆 2, 创建临时表空间 abc_tmp 3, 创建用户表空间(或称数据表空间) abc_ ...

  8. ADT-Bundle--Android开发环境快速搭建

    http://blog.csdn.net/aizquan/article/details/8974750

  9. chrome调式工具

    1.Elementshttps://segmentfault.com/a/1190000008316690 2. Consolehttps://segmentfault.com/a/119000000 ...

  10. 用js判断屏幕的宽度,改变html字体大小用rem布局

    if (document.documentElement.clientWidth > 600) {//页面宽度大于600px让其宽度等于600px,字体大小等于60px,居中 document. ...