00:01
那我们今天要学习的第一个内容呢,是前端的这个02X script6,那我们知道啊,作为一个前端工程师的话,那它最主要的要掌握的是两方面的内容,第一部分呢,就是页面布局,第二部分呢就是脚本的编写,那么页面布局呢,对我们后端工程师来说,不用有太深入的了解,就是所谓的HTML和CSS,那么脚本的编写呢,对于我们后端工程师来说,如果未来你想做全站,或者是未来你想更融洽的和前端工程师呢,做一个前后端对接的话,那么我们还是需要掌握一些的好,那么艾script它是什么?艾SCRIPT6这个版本又有什么样的一个重要的意义,那它和我们的Java又有一个什么样的关系?那么在这一小节的第一个内容当中呢,我们会简单的来介绍一下,好,那么艾特玛这个单词可能对于有些同学来说呢,就比较陌生,所以呢,我们先来。
01:01
再了解一下艾克玛是什么,艾克玛呢,它的全称叫European computer manufacturers association,那它的中文名字呢,就叫做欧洲计算机制造商协会哈,它实际上呢,是一个中立的组织,这个组织呢,是专门啊评估、开发和认可电信计算机的行业标准的,那么javascript的标准呢,就是这个组织颁发的啊,然后这个组织呢,在1994年后呢,它改名叫艾克玛国际了,好,所以呢,这个是一个组织啊,然后呢,艾克玛script和艾克玛之间的关系是什么呢?艾克玛script是由艾克玛国际这个组织啊,通过颁发了一个叫做艾克玛262,这个262呢是一个文件的名字啊,或者是说呢,艾克玛国际,他在颁发每一个这个国际化的一个通用的计算机和电信标准的时候呢,每一个标准都有一个唯一的编号,或者是说唯一的代号,那这个262。
02:01
就是我们的艾玛script的代号啊,所以呢,这个呢,就是我们的艾玛script的脚本程序设计语言的具体的标准,那这个262的这个标准呢,大家去上艾克玛的官方网站上,其实是可以下载到它具体的一个文档的啊,然后接下来呢。啊,艾特玛262的历史,我们来看一下艾特玛262的一个版本的历史啊,那大家如果想这个看的话,如果你感兴趣的话呢,可以到这个网站上具体去看艾克玛262的一个具体的版本的历史,以及啊具体的一个版本的介绍,好然后接下来呢,我们来简单看一下,1997年的时候,262呢,出了第一版,他制定了一个基本的语言的语法,然后1998年的时候呢,他出了第二版,改动呢是比较小的啊,然后就是第三版啊,第三版呢是引入正则异常格式化输出,还有IE开发的支持,那大家可能会发现呢,在第三版的这个过程当中,实际上它就是我们之前所了解的那个javascript了啊,这个javascript呢,就是我们啊,以前以前啊,在十几年甚至20几年的过程当中,一直在使用的一个javascript的一个主流的版本,所以这个第三版呢,实际上啊,相当于一个里程碑的版本。
03:21
啊,它是一个非常重要的版本,然后接下来呢,就是第四版了,第四版的话呢,啊是非常激进的,为什么它激进的,因为我们的javascript呢,实际上写过的同学发现它有一个非常大的特点,就是它好像是面向对象,但好像又不是面向对象,它有一些地方的语法呢,啊,貌似有面向对象的引子,比如说我们啊声明一个啊时间对象的时候,我们用的是new data。这个呢,跟我们Java当中的创建一个时间日期格式的对象是一模一样的,所以呢,我们可以理解它为一个面向对象的语法,但是呢,有的时候它貌似又不是面向对象了,因为我们在声明一个函数的时候,我们可以直接就function,比如说test,这样呢就定义了一个函数,好这个函数定义的方式呢,大家会发现它没有基于任何对象对不对,直接上来就一个函数,然后里面可以写内容,那另外呢,如果不写函数的话,我们随便写一个脚本文件,也可以直接上来就写一个Y,比如说A等于一,好,他也没有基于任何的这样的一个类的一个结构的定义,所以它貌似又不是面向对象的,那这个呢,就是javascript的一大特点,什么特点呢?就是四个项的特点哈,好,所以呢,很多人呢,就觉得这个javascript之前的这个版本啊,有很多啊这样的一些问题啊,它没有去完整的去实现面向对象这样的一个核心的理念,所以呢,在我们编程开发的过程当中。
04:49
呢,就会出现很多的啊,一个扩展性不太好这样的一个问题啊,那这样怎么办呢?第四版就提出要将javascript呢,改成面向对象的版本,好,因为过于激进,所以后来没有发布,为什么过于激进呢?它完全颠覆了第三版的这样的一个传统的语法格式,那么如果第四版出现了的话呢,就意味着我们之前很多网站上的这个内容呢,就没有办法运行了,所以最后呢,这个第四版呢,它就流产了啊,那么与此同时呢,有另一部分人,他实际上呢,是觉得第四版特别激进的,然后呢,这一部分人呢,他其实在一个独立的分支的一个小组当中呢,他们研究了第五版,那么第五版呢,它实际上就是在第三版的基础上做了一个小规模的一个升级和改动啊,为了解决第三版啊这个javascript的编程不太严谨的问题呢,啊,那第五版呢,就引入了一些啊就是一些特性吧,让第三版在编程的过程当中呢,更为严谨,那么这个细节的问题呢,我就不给大家做。
05:50
深入的介绍了,因为这个可能是需要花额外的呃,一两节课的时间来给大家做额外的介绍了,而做这个介绍呢,需要大家对第三版的Java斯有一个非常深刻的认识哈,所以这个呢是前端啊,学科啊,需要这个具体讲的内容,那我们这一块呢,作为Java程序员来说的话,大家就了解这两个版本的区别就行了,好,那我来总结一下这两个里程碑的版本啊,第三版它是一个核心的版本,是一个主流的版本,能够完成我们大部分网站功能,前端功能的开发,那么第五版它是越过第四版,在第三版的基础上做了一个小幅的。
06:28
一个升级,那么这个升级最重要的部分就是引入了严格模式,让我们的javascript编程更严格啊,更有确定性啊,更少的出bug啊,所以这个是第五版,好,那它也引入了一些啊,个别的一些啊,这个扩展的功能啊,对原来的啊,这样的一些啊,代码库还有一些啊,这个啊字符串啊,数组啊,里面的一些核心的功能和方法做了一些扩展啊,这个是我们的第五版,那么如果你是这两年或者说这这五年到十年参加工作的话呢,可能会啊,就是经历过从第三版到第第五版的这样的一个转换啊,那如果你是五年之内的一个开发经验的话,那么一般情况下上来你接触的应该就是第五版了,好,然后接下来呢,就是我们今天要说的这个第六版,第六版呢,就是我们的艾库六版,它实际上呢,是2015年发布的,它呢实际上是真正的一个里程碑的版本。
07:28
为什么这么说呢?它又捡起了第四版当时面向对象的一个核心概念,引入了非常多的面向对象的语法啊,然后呢,还有这个和面向对象很类似的模块化的语法,另外呢,还有这个基于异步编程的promise,还有呢,这个一些结构赋值啊,箭头函数等等,都在第六版当中进行了一个引入,那引入了之后呢,啊,你会发现我们的javascript它的可能性就更多了啊,那我们的javascript啊,它的功能就更强大了啊,它的严谨性也更好了,当然它和我们之前的版本的差异性也更大了,我们的学习呢,要有一个小小的曲线了,要有一个坡度了,所以呢,如果咱们在。
08:13
Java的第二阶段,也就是we部阶段学过javascript的话,那么即使其实对于这个第三版和第五版来说的话,你呢,应该并不陌生啊,因为我们之前学过的这个核心的语法其实就是主要是基于第五版的在外部阶段啊学习的,那么我们今天呢,要学习的就是在第六版当中对第五法的一个面向对象语法和模块化语法,以及其他一些语法的一个扩充,我们为什么要学这个呢?因为目前为止的一个前后端分离开发的,呃,所有的项目当中呢,它所使用的这样的一个javascript,其实都是基于这个第六版的啊,都是基于这第六版的啊,那如果你是一个前端工程师的话,那么你呢,要在第六版的基础上在继续学习七八九十啊这样的一个版本啊,那七八九十这样的一个版本和第六版是什么关系呢?实际上他们的核心本质都是这个第六版,只不过呢,艾玛script它啊有一个自己的啊,这样的一个约定俗成的。
09:13
啊,这样的一个规定,那你可以发现他每年的六月份都会发布一个新版本,在原来的这个版本的基础上做一些功能的升级和扩充,所以呢,其实七也好,八也好,九也好,十也好,都是在第六版的基础上进行了一些修修补补啊,然后呢,又增加了一些必要的啊一些核心功能,所以呢,我们说它的本质呢,实际上都是我们在2015年发布的那个非常具有划时代意义的艾克马斯六这个版本,好,那么这个版本里面所引入的一些面向对象语法呢,实际上呢,它就有点和Java就很像了啊,所以我们也需要去了解一下这个里面的一些面向对象的啊一些语法,好,这个是我们所说的艾SCRIPT6,好,那接下来呢,我们来再说一下,大家可能觉得比较模糊的一个概念啊,叫做艾玛script和javascript的关系到底是什么啊,我们说呢啊JA。
10:13
帕script实际上呢,是最古老的一个名字了啊,在呃,1996年的时候,有一个公司呢,叫网景公司,这个网警公司呢,他是javascript的创造者,他当时呢,他有一个竞争对手,大家可能非常熟悉,这个竞争对手就是微软啊,微软呢他呃在它的操作系统当中绑定了一个大家都知道的浏览器,叫IE浏览器,那么IE浏览器呢,是世界上第一款浏览器,也就是网警,它生产的那个浏览器叫什么呢?叫网景浏览器啊,IE浏览器呢,是网景浏览器的一个竞争对手啊,好,这两个呢是浏览器。
11:01
好,网景浏览器呢,是世界上第一款浏览器啊,然后它呢啊。有基本的HTML,还有CSS的一个解析能力,那IE浏览器呢啊,是世界上相当于第二款浏览器了哈,然后呢,它也内置了HTML和CSS的解析能力,当然了,无论是HTL的引擎也好,还是CSS的引擎也好,都是这个浏览器的厂商,也就是网警以及微软他们自己开发的,所以呢,这两个HTML和CSS解释引擎呢,是运行在他们自己的浏览器当中的,那也就意味着他们会具有一些差异性啊,比如说你同样的一段HTMLCSS代码,它呢只支持网警浏览器,不能够在IE浏览器中运行。啊,那么IE呢,为了和网警竞争,他也会发明一些他自己独有的HTML和CSS的一些特性,然后呢,只支持在IE当中运行,不支持在网警当中运行啊,这个是关于HTML和CSS,同样,那么这个竞争越来越激烈,是不是,所以网警浏览器呢,他就想,诶我呢,是不是可以在我的浏览器端嵌入一些这个类似于后端的代码啊,那那个时候大家看是1996年是不是啊啊,我们Java刚刚出现啊,一年差不多的时间,所以呢,那个时候Java非常流行,那么网点浏览器呢,就想我能不能在我的前端。
12:37
的浏览器当中去嵌入一些类似Java的代码,但是呢,因为浏览器的环境所限哈,他不可能去实现Java代码那么强大的功能,所以呢,他就想能不能啊创建一个语言,然后呢,它就是一个脚本语言,叫script语言,一般情况下我们理解script语言呢,就是类似于一个玩具语言啊,就是简单清亮啊,上手机会啊运行在一些呃各种各样的一些环境当中,非常方便啊,那它呢,就会把这个语言呢运行在浏览器当中,所以呢,它也管它叫script,我能不能弄这么一个script呢,运行在浏览器当中,然后呢,让我的浏览器的功能更丰富,和用户呢有一些交互,比如说用户输入呃这个呃错误的内容的时候,我直接在浏览器当中就能及时的提示用户,用户没有输入用户名的时候,我直接告诉用户你需要输入用户名啊,才能进行一个登录等等等等啊这样的一些功能,那么网景浏览器呢,就着手开发一个脚本语言,那么这个脚本。
13:37
取什么名字好呢?因为当时Java非常流行,所以呢,他们就管这个脚本语言呢叫Java。好,然后所以呢,这个javascript因为用了Java的名字啊,当时Java的这个名字呢,是上公的版权哈,所以呢,实际上javascript这个名字呢,是网景公司和上公司的一相当于一个联合版权,好然后呢,就嵌入了到了他的这个网景浏览器当中,好此时此刻呢,IE浏览器呢,就坐不住了,他发现呢,网景公司啊开发了javascript啊,那么为他的这个浏览器呢,提供了非常丰富的功能,所以IE浏览器也开发了一个script,他能不能给人家抬轿子是不是,所以呢,它就不叫javascript,它叫jscript。
14:22
啊,它叫JS,所以呢,在相当长的一段时间内,IE浏览器里面运行的一直都是JS,可那网警浏览器里面运行的一直都是Java斯script啊,那这个名字我们可能没接触过,只不过呢,我们都用Java斯来代替了,因为这个名字很就是很广泛啊,大家都知道啊,所以呢啊,无论是在IE浏览器里面执的脚本,还是在网记浏览器里面执行的脚本,可以呢,对于我们开发人员来说,我们都管它叫JS javascript,但是其实IE浏器里面的这个脚本,人家的这个真正的名字叫jascript啊,那么随着时间的推移呢,你就会发现IE浏览器呢,它有很多的版本,比如说IE5啊,IE6啊,IE7呀,IE8呀等等等等后面的一些版本,那么王静浏览器呢,也推出了更多的不同的版本,另外呢,除了IE浏览器网网景浏览器之外呢,我们还会有什么火狐浏览器,对吧?火狐浏览器还有什么。
15:23
呃,QQ浏览器是吧,还有呃360浏览器是国内的了哈然国外的苹果的sari浏览器对不对,还有什么欧朋浏览器啊,这都是国外比较流行的,好,那这些浏览器里面呢,都会内置javascript,好他们内置什么样的javascript呢?一开始你像国国外的这些啊浏览器啊,他们自己都有自己的引擎的,你像国内的这些浏览器呢,他们用的其实都是IE里面的引擎啊,用的都是IE里面的引擎,那么就导致呢,这些浏览器里面的引擎呢,就各不相同啊,然后呢,呃,有的国内的浏览器呢,还在IE里面的这个引擎当中呢,进行了一个呃升级改造,好,那这样的话呢,引擎就特别多,引擎多了之后有什么问题啊,就是都各不一样,你写一段脚本,你会发现在哪个浏览器当中,它执行的效果都不一样,然后呢,程序员这个时候就非常痛苦,他们呢,就要做这种浏览器兼容性的这样的一些方案的一个解决啊,在火狐网景里面会怎么写,在火狐应该我怎么写啊。
16:23
然后现在有这个谷歌对不对,呃,谷歌浏览器。实际上就是就是王景的,他的前身就是王景浏览器啊,王景他这个后来捐献了啊,捐捐献到某贼拉了啊,然后这个就呃不是那个火狐啊,火狐它的前身呢,就是这个网景浏览器,好网景后来呢,这个他就现在也不存在了,他这个公司,他把这个浏览器就捐献给一个组织了,这个组织呢,叫做某贼拉这个组织,那某贼拉这个组织现在的浏览器呢,他旗下浏览器其实就是火狐,所以我们可以把王景啊看作火狐浏览器的前身啊,然后所以现在另外还有这个谷歌对吧,就比较主流的啊。
17:04
好,这些浏览器里面它都各不相同,我们呢,写代码的时候呢,就if什么谷歌else啊,这个IE,然后有的时候还得else在else ie5在else ie6在else ie7ie8,所以你会发现IE呢,他自己都和自己的版本都不太一样啊,所以程序员写代码的时候就特别痛苦,那这个时候呢,呃,这个就就合久必分,分久必合嘛,有句话叫所以呢这个时候就非常混乱啊,业界那怎么办呢?就非常需要有这么一个组织,然后呢,他去将我们的这个javascript的标准去给它统一了啊,那么有一个组织呢,叫W3C,大家可能会知道它是统一HTML和CSS标准的,那么还有一个组织呢,就是艾克玛了,艾克玛这个组织呢,是统一javascript的标准的,这个艾格玛这个组织,它统一javascript的标准,由谁来发起的呢?是由我们的当时王景公司来发起的,因为王景其实也意识到这个问题了。所以。
18:04
所以他就联合了一帮小弟,他去向艾格玛去提出申请,说现在业界这个浏览器的这个标准啊,太混乱,我们呢要呃这个倡导呢,就是找一些公立的标准制定组织呢,来制定一些标准的组织,然后呃制定一些标准,然后我们所有的业内的从业者呢,无论是浏览器的生产商,浏览器的引擎的开发商,还是呃基于浏览器来开发应用程序的程序员,我们都统一的按照这个标准来去呃开发浏览器的引擎来去使用浏览器的引擎开发程序,好那这样的话呢,我们的开发效率就会大大的增加,我们浏览器对于一些应用程序的兼容性也会更好,对不对?好,那所以呢,网景浏览器呢,就联合了一帮公司哈,去向艾克玛呢去申请啊,这个一个javascript的一个统一标准,那当然了,它一定是要根据网景浏览器它内置的原始的javascript去申请一个标准了,但是呢,这个标准呢,是需要由我们的。
19:04
艾玛这个组织啊,来发布。叫做。艾克玛对吧?啊,要要用艾特玛这个组织来发布,而javascript这个名字呢,它是有一部分版权是上公司的,所以艾特玛组织如果用javascript这个名字去发布他的这个标准的话呢,他就构成了侵权,那最简单的解决方案呢,就是直接把这个名字改掉,改成什么了呢,就直接改成。所以这完全是因为版权的原因啊,这样的话呢,我们原来啊,历史上叫了很长一段时间的atmascript,实际上呢,它有了一个真正的标准的名字啊,就是历史上叫了很长一段时间的javascript啊,它有了一个真正的标准的名字,叫做艾script,所以这个是艾script和Java的一个啊,互相之间的关系啊,你也可以认为javascript是它作为草根时代的一个一个名字是不是,然后艾script当他摇身一变变成了官方正式的一个版本之后呢,又给了一个他官方定义的一个名字啊,所以呢,他俩的本质实际上是一个,那么微软肯定是不服气啊,微软呢,他就他不符合标准,他说你埃格马则虽然发布了这样的一个标准啊,但是呢,因为我微软行业老大的地位在,所以呢,我依然在我的jscript的基础上呢,我来发布我的第九个版本,第十个版本啊,反正我我我。
20:35
我就是跟你这个艾script,我就是竞争对手是不是啊,我就不采用你的标准,然后直到有一什么时候到来,你知道移动互联网的时代到来,那么大家都知道我们的PC端啊,可能大家如果用Windows操作系统的话,那么IE浏览器啊,它的占有量还是非常大的,但是切换到移动端的话就不太好了啊,对不对,这个前景就不乐观了,因为移动端的话,我们要么就是苹果的操作系统,要么就是安卓的操作系统,那之前呢,也有过win phone啊,就Windows的phone这样的一个操作系统,但是它的市场的占有量呢,非常非常少啊,甚至到现在萎缩就没有了啊,所以呢,IE浏览器呢,在移动端呢,它就任何的一个市场的地位它都没有,所以呢,这就面临着它IE浏览器的市场占有率下降啊,因为现在其实大家用手机的还是比用电脑的多得多的啊,在平时我们生活的过程当中啊,像亲戚朋友啊,尤其是一些长辈啊啊他。
21:35
们只能人手一个手机,但是他们没有电脑对吧?啊,所以说移动端的占有量非常多,那这样的话呢,IE的市场占有量整体呢,就因为移动端的影响而而而整体下滑,所以他如果再不改变自己的话呢,它整个可能就要被市场淘汰了,那所以说呢,现在IE浏览器呢,从十一开始彻底呢就面向对象了啊,其实IE从八开始就已经意识到这个问题了,所以呢,IE9也好,十也好,11也好,慢慢慢慢的把面向对象的一些理念呢,就移到这个里面了,但是呢,它的本质啊和这个网点浏览器的本质啊,它都两,这就是两个完全不同的引擎,你再怎么去向这面靠拢,它也不能够完全的去改变你的基因,对不对,因为你基因在不太好改变,那怎么办呢?所以IE呢,在我们的WINDOWS10操作系统当中,他就彻底呢,就抛弃了这个IE浏览器,用了我们现在的什么呀,用了我们现在IE里操作系统里面,它内置的一个爱浏览器啊,所以呢,这个爱浏览器呢,就完全符合的标准了。
22:35
啊,那所以这个就是我们整个的一个浏览器,以及这个,呃,前端的一个javascript脚本啊,以及javascript和。脚本,呃,这样的一个历史,还有到现在这么一个发展的一个流程啊,所以呢,这是我们script和JA javascript的一个关系了哈。
我来说两句