JavaScript介绍

JavaScript 诞生于 1995 年。它当时的目的是为了验证表单输入的验证。因为在 JavaScript问世之前,表单的验证都是通过服务器端验证的。而当时都是电话拨号上网的年代,服务器验证数据是一件非常痛苦的事情。

经过许多年的发展, JavaScript 从一个简单的输入验证成为一门强大的编程语言。所以,学会使用它是非常简单的,而真正掌握它则需要很漫长的时间。那么本套视频就带领大家进入 JavaScript 课堂,去学习和理解它。

1.1 JavaScript的发展历史

Nombas 和 ScriptEase

大概在 1992 年,一家称作 Nombas 的公司开发了一种叫做 C 减减(C-minus-minus,简称 Cmm)的嵌入式脚本语言。Cmm 背后的理念很简单:一个足够强大可以替代宏操作(macro)的脚本语言,同时保持与 C (和 C ++)足够的相似性,以便开发人员能很快学会。这个脚本语言捆绑在一个叫做 CEnvi 的共享软件中,它首次向开发人员展示了这种语言的威力。Nombas 最终把 Cmm 的名字改成了 ScriptEase,原因是后面的部分(mm)听起来过于消极,同时字母 C “令人害怕”。现在 ScriptEase 已经成为了 Nombas 产品背后的主要驱动力。

Netscape 发明了 JavaScript

当 Netscape Navigator 崭露头角时,Nombas 开发了一个可以嵌入网页中的 CEnvi 的版本。这些早期的试验被称为 Espresso Page(浓咖啡般的页面),它们代表了第一个在万维网上使用的客户端语言。而 Nombas 丝毫没有料到它的理念将会成为万维网的一块重要基石。

当网上冲浪越来越流行时,对于开发客户端脚本的需求也逐渐增大。此时,大部分因特网用户还仅仅通过 28.8 kbit/s 的调制解调器连接到网络,即便这时网页已经不断地变得更大和更复杂。而更加加剧用户痛苦的是,仅仅为了简单的表单有效性验证,就要与服务器进行多次地往返交互。设想一下,用户填完一个表单,点击提交按钮,等待了 30 秒的处理后,看到的却是一条告诉你忘记填写一个必要的字段。

那时正处于技术革新最前沿的 Netscape(网景),开始认真考虑开发一种客户端脚本语言来解决简单的处理问题。当时工作于 Netscape 的 Brendan Eich,开始着手为即将在 1995 年发行的 Netscape Navigator 2.0 开发一个称之为 LiveScript 的脚本语言,当时的目的是在浏览器和服务器(本来要叫它 LiveWire)端使用它。Netscape 与 Sun 及时完成 LiveScript 实现。

就在 Netscape Navigator 2.0 即将正式发布前,Netscape 将其更名为 JavaScript,目的是为了利用 当年Java 这个因特网时髦词汇。Netscape 的赌注最终得到回报,JavaScript 从此变成了因特网的必备组件。

三足鼎立

因为 JavaScript 1.0 如此成功,Netscape 在 Netscape Navigator 3.0 中发布了 1.1 版。恰巧那个时候,微软决定进军浏览器,发布了 IE 3.0 并搭载了一个 JavaScript 的克隆版,叫做 JScript(这样命名是为了避免与 Netscape 潜在的许可纠纷)。微软步入 Web 浏览器领域的这重要一步虽然令其声名狼藉,但也成为 JavaScript 语言发展过程中的重要一步。

在微软进入后,有 3 种不同的 JavaScript 版本同时存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。与 C 和其他编程语言不同的是,JavaScript 并没有一个标准来统一其语法或特性,而这 3 中不同的版本恰恰突出了这个问题。随着业界担心的增加,这个语言的标准化显然已经势在必行。

标准化

1997 年,JavaScript 1.1 作为一个草案提交给欧洲计算机制造商协会(ECMA)。第 39 技术委员会(TC39)被委派来“标准化一个通用、跨平台、中立于厂商的脚本语言的语法和语义”。由来自 Netscape、Sun、微软、Borland 和其他一些对脚本编程感兴趣的公司的程序员组成的 TC39 锤炼出了 ECMA-262,该标准定义了名为 ECMAScript 的全新脚本语言。

在接下来的几年里,国际标准化组织及国际电工委员会(ISO/IEC)也采纳 ECMAScript 作为标准(ISO/IEC-16262)。从此,Web 浏览器就开始努力(虽然有着不同的程度的成功和失败)将 ECMAScript 作为 JavaScript 实现的基础。

1.2 浏览器之战

第一次浏览器大战

伴随着JavaScript的发展是浏览器这个JavaScript的解释器,在1994年这个互联网早期,网景公司的Navigator是绝对的王者,但是微软借助操作系统的绑定方式,慢慢的蚕食Netscape的市场,双方在1996年左右掀起了一场浏览器大战。本来网景是占据绝对地位的,可惜微软的系统绑定浏览器的方式和先于网景遵循了ECMAScript的做法,使得网景公司最终失败。网景终于在1998年以48亿美元的价格出售给了AOL公司。而后,网景被AOL变成了它ISP业务的门面,网景浏览器的核心团队至此已经全部离队。于是,第一回合微软大胜。

第二次浏览器大战

然而,事情并没有就此结束。1998年网景公开了它的浏览器源码,并重新命名为Mozilla,全部程序进行了重写。2002年发布了第一个版本,2003年成立了Mozilla基金会,2004年基于Mozilla源码的Firefox首次登台,拉开了第二次浏览器大战的序幕。直到同年2月份,微软的浏览器份额已经从最高点的96%下降到了85%,主要是由于Firefox的强烈市场攻势。于是乎,微软再次全力以赴,迅速提前了原定配合Longhorn Windows版本的IE 7.0的发布日期,用来与火狐狸(Firefox)抗衡。可以说到目前为止,火狐浏览器也是占据一定市场份额的。

第二次大战并不像第一次那么简单。这次不只是IE和火狐狸的斗争了。一些新的基于不同引擎的浏览器也加入了阵营,比如挪威的Opera (基于Presto引擎)和苹果的Safari浏览器,google的chrome浏览器等等。

苹果发布的safari浏览器,使用了webkit引擎,这引擎也是 Chrome浏览器的引擎,也就是safari和chrome拥有同样的内核。我们现在苹果手机里面的默认浏览器就是safari。因此苹果通过捆绑电脑端和移动端,迅速占领了市场。

而google的chrome浏览器,在性能上远远的超过所有对手,导致IE浏览器的市场进一步被蚕食。

到了2011年浏览器大局基本已定——google的Chrome一统天下,Firefox通过丰富的插件仍然占据一定市场,Safari则凭借苹果的市场优势和封闭性获得新的用户群体,IE和Opera则被慢慢边缘化。

到现在2020年,可以说IE已经退出了历史舞台了,微软自己都放弃了IE,全力开发Edge,企图在浏览器市场夺回自己昔日的辉煌,但是目前市场的反馈Edge浏览器使用使用量持续下降。Chrome浏览器一统天下,Safari稳定自己的市场,浏览器的格局目前已经稳定,短期内不会有太大变化。

至于咱们中国的百度浏览器、qq浏览器、搜狗浏览器、UC浏览器都是采用了Chrome的webkit内核,如果说的是双核,其实就是内置了(Chrome和IE)的内核,之后换了个皮肤而已。

感谢先贤

在这里,我们每个人应该感谢万维网之父--伯纳斯·李,因为他的无私举动,放弃了申请互联网相关技术专利,才使得我们现在可以无偿的上网。

其实早在1992年,伯纳斯·李和他的研究伙伴曾向律师咨询,考虑开公司销售网络浏览器软件,但他最后放弃了这个决定。因为他当时预见如果他这么做的话,势必引起网络软件大战,使国际互联网陷入割据分裂,最后他决定在互联网未来的百家争鸣中扮演一个学者的角色,而不是商人。

1994年,伯纳斯·李创建了非赢利性的万维网联盟, 简称W3C,邀请了当时的一些一线IT相关公司,如:微软、 网景、 Sun、Apple、IBM 等共155家著名公司加入,致力达到WWW技术标准化的协议,并进一步推动互联网技术的发展。万维网联盟决定所有由联盟提出的技术都是无偿的,所有人都可以简单地使用。

1.3 什么是JavaScript

JavaScript是一门面向对象的、弱数据类型、解释性、动态的脚本语言,简称js。诞生于1995年,ECMAScript标准在1997年第一次制定。JavaScript 是一种具有面向对象能力、解释型的程序设计语言。更具体一点,它是基于对象和事件驱动并具有相对安全性的客户端脚本语言。因为他不需要在一个语言环境下运行,而只需要支持它的浏览器即可。它的主要目的是,验证发往服务器端的数据、增加 Web 互动、加强用户体验度等。

1.4 JavaScript可以干什么

JavaScript的主要作用有三个:

  • 数据校验(js就是为这个诞生的)

  • 网页特效(目前主要的使用场景)

  • 数据交互(主要指Ajax技术)

1.5 JavaScript 的一些特点

  1. JavaScript 是一个脚本编程语言。

  2. 脚本语言相对传统的编程语言而已,语法和规则相对没有那么严格。

  3. avaScript 是解释执行。即JavaScript 在执行的时候,不会编译成二进制代码。而是将JavaScript 代码调入引擎,然后解释执行。

  4. JavaScript 的主要的作用,可以对网页的元素动态编程。

  5. JavaScript是弱数据类型编程语言。

  6. JavaScript是面向对象编程语言。

1.6 开发前的准备工作

开发代码之前,我们一般需要安装和配置环境 -- 开发环境和运行环境。

1.6.1 开发环境

开发环境就是开发JavaScript代码所需的环境,一般建议新手刚刚开始使用一些记事本工具(如sublime、editPlus、VScode),锻炼代码的手感。等学习到一定阶段,就可以使用集成开发工具IDE(如:Hbuilder、webstrom等)。

image-20201117131239642

1.6.2 运行环境

js和HTML、css都是web前端的三大基本组件(也就是web前端三剑客),都是运行在浏览器上,所以只需要存在浏览器即可,同样的建议:使用Chrome浏览器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值