美文网首页
01|JavaScript简介

01|JavaScript简介

作者: 井润 | 来源:发表于2019-11-17 00:05 被阅读0次

    01|JS简史

    本文在一开始讲解到了,JS出现的历史背景也就是处理以前从服务器(如Perl)负责的一些输入验证操作,并且在JavaScript问世之前,必须把表单数据发送到服务器才能够知道用户是否填写了对应的必填域,是否输入了无效的值,Netscape Navigator希望JS能够解决这个问题,能够在客户端校验任务是一件绝对令人兴奋的事情,何况是在普遍拨号上网的时代,但是网速之慢导致了服务器的每一次数据交换都需要严重考验用户的耐心!

    后面的时候JS开始慢慢地登上浏览器的舞台,成为了浏览器端最流行的语言,从以前人们认为的玩具型语言到了全功能的语言,其主要目的就是处理用于与浏览器的复杂的交互与计算,并且拥有很多复杂的功能!

    在设计上来看JS是一门非常简单的语言,但是从复杂程度来看,掌握所谓的JS需要数年的时间才能够真正的掌握JS,关键的部分就是弄清楚JS的本质和历史以及对应的局限性!

    • 那么JS是如何演变过来的呢? 我想这不仅仅是你所好奇的,这也是我所好奇的一点!

    从上文中可以理解到,JS诞生于那种上网拨号的时代,因为Web日益流行的同时,绝大多数因特网用户都使用上网速度仅为28.kbit/s的调制解调器(宽带猫)进行上网操作,但是网页的大小和复杂度却不断地攀升,对应的完成简单的表单验证与服务器的交互,严重影响用户的体验! 试想一下,用户调好对应的表单之后,点击提交之后30秒之后,服务器提醒你还有必填选项没有填写! 这可真是一个糟糕的体验!

    在这种体验的互联网环境下面,网景公司决定开发一种客户端语言,用来处理这种简单的验证! 当然这也造就了后面的JS!

    后面由布莱登艾奇 BrendanEich 设计的改语言! 在1995年2月发布的NetScape Navigator2开发的一种叫做LiveScript的语言,一种脚本语言! 并且该语言同时在啊浏览器和服务器上使用,他在服务器上的名字叫做LiveWire 对应的后面网景为了加快LiveScript的速度,与Sun公司建立了开发联盟在对应的NetScape Navigator2发布之前,为了搭上媒体炒热Java的顺风车,将LiveScript临时改为了JavaScript

    后面与Microsoft微软的浏览器大战,加快了JavaScript的发展,后面网景在浏览器大战中以失败告终,Window内置了Exploere,对应的在浏览器的体量上就更胜一筹!

    再有后面的网景将JS标准提交给ECMA欧洲计算机制造协会,因为商标问题不能再叫JavaScript,于是有了后面人们耳熟能详的ECMAScript!

    02|JavaScript实现

    其中对应的ECMAScript虽然说是与JavaScript有着相同的含义,但是实际上来看,JS的内容要比ECMAScript多得多,如下图所示:

    Content Description
    ECMAScript核心 对应的JavaScript标准部分
    DOM 文档对象模型
    BOM 浏览器对象模型

    对应的ECMA定义的ECMAScript与浏览器没有对应的依赖关系,ECMA定义的知识语言的基础部分,因此在对应的基础上可以构建更加完善的脚本语言!

    我们常见的浏览器只是ECMAScript实现可能的 宿主环境之一,宿主环境不仅提供基本的ECMAScript实现,同时还提供 语言的拓展,为了与宿主环境更好的交互,对应的宿主环境还有我们现在的 Node也是宿主环境之一!

    除此之外对应的对ECMAScript的版本更迭作了补充,对应的细节就不再文中阐述了!

    不仅如此,下文还给出如何与ECMAScript兼容的方案!以及对应的浏览器的兼容性进行了简单描述!

    03|DOM

    文档对象模型,一直都是JavaScript难以回避甚至是说要好好学习的一个知识点,DOM将整个页面映射为一个多层节点结构,HTML或者说XML页面中的每个组成部分都是某种类型的节点!

    • 为什么需要DOM

    对应的微软的Exploere浏览器与NetScape navigator分别支持不同形式的DHTML动态的HTML,能够不重载网页,就能够修改其外观和内容了,这种技术发展带来巨大进步的同时,也带来了非常大的问题,微软网景双方各执己见,导致一个网页在不同浏览器上运行的时代结束了 其实也就是意味着,兼容性在浏览器中展现的问题是在这里开始的!

    因此如果说想要保持Web跨平台的天性,就必须多做一些工作,对微软和网景做一些制约,避免出现技术两方割据的形式,导致浏览器互不兼容,因此W3C组织开始慢慢着手于规划DOM!

    其实在别的书中不曾讲到的DOM细节部分,在JavaScript中都有对应的介绍,这是我在看第二遍的时候所始料未及的但是又令人惊喜的:

    • DOM级别

    DOM1与1998年10月成为W3C推荐的标准,其中有两个模块组成:

    DOM Core和对应的DOM HTML,也就是所谓的DOM核心和对应的DOM HTML,DOM 核心主要是负责 如何应设基于XML的文档结构,以便对文档中任意部分的访问和操作!

    DOM HTML则是在核心的基础上进行了拓展,添加了针对HTML的对象和方法!

    但是需要注意的是,DOM并不仅仅是JS的,别的语言也有DOM,只不过Web浏览器中,基于ECMAScript实现的DOM的确成为了JavaScript语言不可或缺的部分!

    DOM2中的目标就更加宽泛了,在对应的DOM基础上,扩充了鼠标和用户界面事件,范围,遍历(迭代DOM文档的方法),通过对象接口增加了对CSS的支持,DOM1级中的DOM核心经过拓展之后增加了对XML命令空间的支持!

    其实总结如下:

    1. DOM视图:定义了跟踪不同文档视图的接口
    2. DOM事件:定义了事件与事件处理的接口
    3. DOM样式:定义了基于CSS为元素应用样式的接口
    4. DOM遍历和范围:定义了遍历和操作文档树的接口

    DOM3中的进一步拓展,其中最主要的部分就是,引入了统一方式加载和保存文档的方法-DOM加载和保存模块中定义,验证文档的方法就是在DOM验证模块中定义,同时对核心也有拓展,就是对应的开始支持XML,涉及XML,Infoset,XPath

    其中有些人肯能会说,再别的地方看到了DOM0,是的,但是是一个不是很明确的DOM Level这是在DOM历史中的一个参照点,主要是对起初支持的DHTML

    • 其他DOM标准

    其中有对应的SVG,MathML 数学标记,SMIL同步多媒体集成语言!

    • Web浏览器对于DOM的支持程度

    对DOM标准做了一系列的介绍,对应的不仅仅是兼容性这块的内容!

    04|BOM

    浏览器对象模型,可以控制浏览器显示页面以外的部分,BOM真正与众不同的地方就是,作为JavaScript实现的部分但是没有相关的标准,但是在HTML5中得到了解决!

    相关文章

      网友评论

          本文标题:01|JavaScript简介

          本文链接:https://www.haomeiwen.com/subject/qbiuictx.html