热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[01]JavaScript的概述

JavaScript的概述:JavaScript诞生于1995年。它当时的目的是为了验证表单输入的验证。因为在JavaScript问世之前,表单的验证都是通过服务器端

Javascript的概述:

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

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

一. 什么是 Javascript

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

二.Javascript 特点

松散性
Javascript 语言核心与 C、C++、Java 相似,比如条件判断、循环、运算符等。但,它却是一种松散类型的语言,也就是说,它的变量不必具有一个明确的类型。

对象属性
Javascript 中的对象把属性名映射为任意的属性值。它的这种方式很像哈希表或关联数组,而不像 C 中的结构体或者 C++、Java 中的对象。

继承机制
Javascript 中的面向对象继承机制是基于原型的,这和另外一种不太为人所知的 Self 语言很像,而和 C++以及Java 中的继承大不相同。

三.Javascript 历史

引子
大概在 1992 年,有一家公司 Nombas 开发一种叫做 C–(C-minus-minus,简称 Cmm)的嵌入式脚本语言。后应觉得名字比较晦气,最终改名为 ScripEase。而这种可以嵌入网页中的脚本的理念将成为因特网的一块重要基石。

诞生
1995 年,当时工作在 Netscape(网景)公司的布兰登(Brendan Eich)为解决类似于“向服务器提交数据之前验证”的问题。在 Netscape Navigator 2.0 与 Sun 公司联手开发一个称之为LiveScript 的脚本语言。为了营销便利,之后更名为 Javascript(目的是在 Java 这课大树下好乘凉)。

邪恶的后来者
因为 Javascript 1.0 如此成功,所以微软也决定进军浏览器,发布了 IE 3.0 并搭载了一个 Javascript 的克隆版,叫做 JScript(这样命名是为了避免与 Netscape潜在的许可纠纷),并且也提供了自己的 Vbscript。

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

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

灵敏的微软、迟钝的网景
虽然网景开发了 Javascript 并首先提交给 ECMA 标准化,但因计划改写整个浏览器引擎的缘故,网景晚了整整一年才推出“完全遵循ECMA 规范”的 Javascript1.3。而微软早在一年前就推出了“完全遵循 ECMA 规范”的 IE4.0。这导致一个直接恶果:JScript 成为 Javascript语言的事实标准。

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

山寨打败原创
JScript 成为 Javascript 语言的事实标准,加上 Windows 绑定着 IE 浏览器,几乎占据全部市场份额,因此,1999 年之后,所有的网页都是基于 JScript 来开发的。而 Javascript1.x
变成可怜的兼容者。

网景的没落与火狐的崛起
网景在微软强大的攻势下,1998 年全面溃败。但,星星之火可以燎原。同年成立 Mozilla项目中Firefox(火狐浏览器)在支持 Javascript 方面无可比拟,在后来的时间里一步步蚕食 IE的市场,成为全球第二大浏览器。

谷歌的野心
Google Chrome,又称 Google 浏览器,是一个由Google(谷歌)公司开发的开放原始码网页浏览器。他以简洁的页面,极速的浏览,一举成为全球第三大浏览器。随着移动互联网的普及,嵌有 Android 系统的平板电脑和智能手机,在浏览器这块将大有作为。

苹果的战略
Safari 浏览器是苹果公司各种产品的默认浏览器,在苹果的一体机(iMac)、笔记本(Mac) 、MP4(ipod)、iphone(智能手机)、ipad(平板电脑),并且在 windows 和 Linux 平台都有相应版本。目前市场份额全球第四,但随着苹果的产品不断的深入人心,具有称霸之势。

幸存者
Opera 的全球市场份额第五,2%左右。它的背后没有财力雄厚的大公司,但它从“浏览器大战”存活下来的,有着非常大的潜力。

四.Javascript 核心

虽然 Javascript 和 ECMAScript 通常被人们用来表达相同的含义,但 Javascript 的含义却比ECMA-262中规定的要多得多。一个完整的Javascript应该由下列三个不同的部分组成。

1.核心(ECMAScript)
2.文档对象模型(DOM)
3.浏览器对象模型(BOM)

ECMAScript 介绍
由 ECMAScript-262 定义的 ECMAScript 与 Web 浏览器没有依赖关系。ECMAScript 定义的只是这门语言的基础,而在此基础之上可以构建更完善的脚本语言。我们常见的 Web浏览器只是 ECMAScript 实现可能的宿主环境之一。
既然他不依赖于 Web 浏览器,那么他还在哪些环境中寄宿呢?比如:ActionScript、ScriptEase 等。而他的组成部分有:语法、类型、语句、关键字、保留字、操作符、对象等。

ECMAScript 版本
ECMAScript 目前有四个版本,1、2、3、4、5 版本,这里不再进行详细探讨。有兴趣的可以搜索查阅。

Web 浏览器对 ECMAScript 的支持
到了 2008 年,五大主流浏览器(IE、Firefox、Safari、Chrome、Opera)全部做到了与ECMA-262 兼容。其中,只有 Firefox 力求做到与该标准的第 4 版兼容。以下是支持表(仅供参考使用!)。

浏 览 器ECMAScript 兼容性
Netscape Navigator 2----
Netscape Navigator 3----
Netscape Navigator 4 – 4.05----
Netscape Navigator 4.06 – 4.79第 1 版
Netscape 6+ (Mozilla 0.6.0+)第 3 版
Internet Explorer 3----
Internet Explorer 4----
Internet Explorer 5第 1 版
Internet Explorer 5.5 – 7第 3 版
Internet Explorer 8第 3.1 版(不完全兼容)
Internet Explorer 9第 5 版
Opera 6 - 7.1第 2 版
Opera 7.2+第 3 版
Opera 11+第 5 版
Safari3+第 3 版
Firefox 1–2第 3 版
Firefox 3/4/5/6/7/8/9第 3/5 版

文档对象模型 (DOM)

文档对象模型(DOM,Document Object Model)是针对 XML 但经过扩展用于 HTML 的应用程序编程接口(API,Application Programming Interface)。

DOM 有三个级别,每个级别都会新增很多内容模块和标准(有兴趣可以搜索查询)。以下是主流浏览器对 DOM 支持的情况:

浏 览 器DOM 兼容性
Netscape Navigator 1 – 4.x----
Netscape Navigator 6+(Mozilla 0.6.0+)1 级、2 级(几乎全部)、3 级(部分)
Internet Explorer 2 – 4.x----
Internet Explorer 51 级(最小限度)
Internet Explorer 5.5 – 71 级(几乎全部)
Opera 1 – 6----
Opera 7 – 8.x1 级(几乎全部)、2 级(部分)
Opera 9+1 级、2 级(几乎全部)、3 级(部分)
Safari 1.0x1 级
Safari 2+1 级、2 级(部分)
Chrome 0.2+1 级、2 级(部分)
Firefox 1+1 级、2 级(几乎全部)、3 级(部分)

浏览器对象模型 (BOM)
访问和操作浏览器窗口的浏览器对象模型(BOM,Browser Object Model)。开发人员使用 BOM 可以控制浏览器显示页面以外的部分。而 BOM 真正与众不同的地方(也是经常会导致问题的地方),还是它作为Javascript 实现的一部分,至今仍没有相关的标准。

Javascript 版本
身为 Netscape“继承人”的 Mozilla 公司,是目前唯一沿用最初的Javascript 版本编号的浏览器开发商。在网景把 Javascript 转手给Mozilla 项目的时候,Javascript 在浏览器中最后的版本号是 1.3。后来,随着 Mozilla 继续开发,Javascript 版本号逐步递增。

浏 览 器Javascript 版本
Netscape Navigator 21.0
Netscape Navigator 31.1
Netscape Navigator 41.2
Netscape Navigator 4.061.3
Netscape 6+ (Mozilla 0.6.0+)1.5
Firefox 11.5
Firefox 1.51.6
Firefox 21.7
Firefox 31.8
Firefox 3.1+1.9

五. 开发工具集

代码编辑器:Notepad++。
浏览器:谷歌浏览器,火狐浏览器,IE 浏览器,IETest 工具等。
PS:学习 Javascript 需要一定的基础,必须有 xhtml+css 基础、至少一门服务器端编程
语言的基础(比如 PHP)、一门面向对象技术(比如 Java)、至少有一个 Web 开发的项目基础(例如留言板程序等)。


转:https://www.cnblogs.com/pengtdy/p/8306267.html



推荐阅读
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
author-avatar
天蝎丿冷傲丨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有