第九十六节,javascript概述

林贵秀      2022-02-07     746

关键词:

JavaScript概述

 

学习要点:

1.什么是JavaScript

2.JavaScript特点

3.JavaScript历史

4.JavaScript核心

5.开发工具集

 

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版本同时存在:Netscape Navigator 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版

Safari 3+

第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 5

1级(最小限度)

Internet Explorer 5.5 -- 7

1级(几乎全部)

Opera 1 -- 6

----

Opera 7 -- 8.x

1级(几乎全部)、2级(部分)

Opera 9+

1级、2级(几乎全部)、3级(部分)

Safari 1.0x

1级

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 2

1.0

Netscape Navigator 3

1.1

Netscape Navigator 4

1.2

Netscape Navigator 4.06

1.3

Netscape 6+ (Mozilla 0.6.0+)

1.5

Firefox 1

1.5

Firefox 1.5

1.6

Firefox 2

1.7

Firefox 3

1.8

Firefox 3.1+

1.9

 

五.开发工具集

代码编辑器:Notepad++。(在360软件管家里找到,直接下载安装即可)

浏览器:谷歌浏览器,火狐浏览器,IE浏览器,IETest工具等。

PS:学习JavaScript需要一定的基础,必须有xhtml+css基础、至少一门服务器端编程语言的基础(比如PHP)、一门面向对象技术(比如Java)、至少有一个Web开发的项目基础(例如留言板程序等)。

 

小刘同学的第九十六篇博文

  晚上在看Python这一块的内容。  纠结在启动Python服务这,一开始按着PDF写的,结果总是报错。  不过好在运行起来了,把服务器启动了。      =========毕设分割线==========  重点还是毕设,今天被py耽误太久了,... 查看详情

#yyds干货盘点#前端歌谣的刷题之路-第九十六题-判断质数

...酷本题目源自于牛客网微信公众号前端小歌谣题目请补全JavaScript代码,要求以Boolean的形式返回字符串参数是否符合身份证标准。注意:1.无需考虑地区信息、出生日期、顺序码与校验码的验证​ 查看详情

第九十七节,使用javascript

使用JavaScript 学习要点:1.创建一张HTML页面2.<Script>标签解析3.JS代码嵌入的一些问题 一.创建一张HTML页面因为JavaScript是嵌套在html文档中的,所以要想创建一个html文档<!DOCTYPEhtml><htmllang="en"><head><metachar... 查看详情

第九十九节,javascript数据类型

JavaScript数据类型  学习要点:1.typeof操作符2.Undefined类型3.Null类型4.Boolean类型5.Number类型6.String类型7.Object类型 ECMAScript中有5种简单数据类型:Undefined、Null、Boolean、Number和String。还有一种复杂数据类型——Object。ECMAScrip... 查看详情

第一百一十六节,javascript,dom操作样式

JavaScript,DOM操作样式 一.操作样式 CSS作为(X)HTML的辅助,可以增强页面的显示效果。但不是每个浏览器都能支持最新的CSS能力。CSS的能力和DOM级别密切相关,所以我们有必要检测当前浏览器支持CSS能力的级别。 DOM1级... 查看详情

第九十二天

不想写了 查看详情

第九十五天

嘿呀 查看详情

第一百七十六节,jquery,插件

jQuery,插件 学习要点:  1.插件概述  2.验证插件  3.自动完成插件  4.自定义插件 插件(Plugin)也成为jQuery扩展(Extension),是一种遵循一定规范的应用程序接口编写出来的程序。目前jQuery插件已超过几千种,由来自... 查看详情

第十六节——file类,字节流(代码片段)

File类学习一、File类的概述File是文件和目录路径名的抽象表时对于File而言,它封装的并不是一个真正的存在的文件,仅仅是一个路径,它可以是存在的,也可以是不存在的,通过操作这个路径变成具体存在二... 查看详情

#yyds干货盘点#前端歌谣的刷题之路-第九十一题-继承

...酷本题目源自于牛客网微信公众号前端小歌谣题目请补全JavaScript代码,实现以下功能:1.给"Human"构造函数的原型对象添加"getName"方法,返回当前实例"name"属性2.将"Ch 查看详情

第九十三节简化表单错误信息提取

在表单文件内定义一个BaseForm的类,让其继承forms.Form,并定义一个获取错误信息的方法,然后让定义的表单类去继承BaseForm,然后在views.py中直接调用就可以了 查看详情

#yyds干货盘点#前端歌谣的刷题之路-第九十八题-getter

...酷本题目源自于牛客网微信公众号前端小歌谣题目请补全JavaScript代码,完成名为"Rectangle"的矩形类。要求如下:1.构造函数只包含两个参数,依次为"height"、"width"2. 查看详情

#yyds干货盘点#前端歌谣的刷题之路-第九十五题-判断质数

...题目源自于牛客网微信公众号前端小歌谣题目描述请补全JavaScript代码,要求在Number对象的原型对象上添加"_isPrime"函数,该函数判断调用的对象是否为一个质数,是则 查看详情

“全栈2019”java第九十三章:内部类应用场景(迭代器设计模式)

...开发环境JDKv11IntelliJIDEAv2018.3文章原文链接“全栈2019”Java第九十三章:内部类应用场景(迭代器设计模式)下一章“全栈2019”Java第九十四章:局部内部类详解学习小组加入同步学习小组,共同交流与进步。方式一:关注头条号G... 查看详情

第十六节:pandas之日期时间

 Pandas日期功能扩展了时间序列,在财务数据分析中起主要作用。  查看详情

#yyds干货盘点#前端歌谣的刷题之路-第九十七题-symbol

...酷本题目源自于牛客网微信公众号前端小歌谣题目请补全JavaScript代码,要求以键/值对的对象形式返回参数数组。要求如下:1.键名的数据类型为Symbol2.键值为当前数组项3.Symbol的描 查看详情

#yyds干货盘点#前端歌谣的刷题之路-第九十四题-数组过滤

...酷本题目源自于牛客网微信公众号前端小歌谣题目请补全JavaScript代码,要求将数组参数中的多维数组扩展为一维数组并返回该数组。注意:1.数组参数中仅包含数组类型和数字类型示例1输入:[1,[2 查看详情

“全栈2019”java第九十八章:局部内部类访问作用域成员详解

...开发环境JDKv11IntelliJIDEAv2018.3文章原文链接“全栈2019”Java第九十八章:局部内部类访问作用域成员详解下一章“全栈2019”Java第九十九章:局部内部类与继承详解学习小组加入同步学习小组,共同交流与进步。方式一:关注头条... 查看详情