炒沙作縻终不饱,缕冰文章费工巧。这篇文章主要讲述JavaScript相关的知识,希望能为你提供帮助。
一、javascript介绍1.javaScriptJavaScript(通常称之为为JS)是一种高级的、解释型编程语言。J它支持面向对象程序设计,指令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。它已经由ECMA(欧洲电脑制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)支持。
JavaScript与Java在名字或语法上都有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript的语言设计主要受到了Self(一种基于原型的编程语言)和Scheme(一门函数式编程语言)的影响。在语法结构上它又与C语言有很多相似(例如if条件语句、switch语句、while循环、do-while循环等)。
2.微软采纳微软公司于1995年首次推出Internet Explorer,从而引发了与Netscape的浏览器大战。微软对Netscape Navigator解释器进行了逆向工程,创建了JScript,以与处于市场领导地位的网景产品同台竞争。JScript也是一种JavaScript实现,这两个JavaScript语言版本在浏览器端共存意味着语言标准化的缺失,发展初期,JavaScript的标准并未确定,同期有网景的JavaScript,微软的JScript双峰并峙。除此之外,微软也在网页技术上加入了不少专属对象,使不少网页使用非微软平台及浏览器无法正常显示,导致在浏览器大战期间网页设计者通常会把“用Netscape可达到最佳效果”或“用IE可达到最佳效果”的标志放在主页。
3.标准化1996年11月,网景正式向ECMA(欧洲计算机制造商协会)提交语言标准。1997年6月,ECMA以JavaScript语言为基础制定了ECMAScript标准规范ECMA-262。JavaScript成为了ECMAScript最著名的实现之一。除此之外,ActionScript和JScript也都是ECMAScript规范的实现语言。尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的脚本语言来推广和宣传,但是JavaScript具有非常丰富的特性。
二、JavaScript的三大组成1、ECMAScriptJavaScript的核心,描述了语言的基本语法(var、for、if、array等)和数据类型(数字、字符串、布尔、函数、对象(obj、[]、{}、null)、未定义),ECMAScript是一套标准,定义了一种语言(比如JS)的基本语法。
2、文档对象模型(DOM)DOM(文档对象模型)是 html 和 XML 的应用程序接口(API)。DOM 将把整个页面规划成由节点层级构成的文档。HTML 或 XML 页面的每个部分都是一个节点的衍生物。请考虑下面的 HTML 页面:
< !DOCTYPE html>
< html>
< head>
< meta charset="utf-8">
< title> < /title>
< /head>
< body>
< /body>
< /html>
这段代码可以赢DOM绘制一个节点层次图
文章图片
DOM 通过创建树来表示文档,从而使开发者对文档的内容和结构具有空前的控制力。用 DOM API 可以轻松地删除、添加和替换节点(getElementById、childNodes、appendChild、 innerHTML)。
3、浏览器对象模型(BOM)【JavaScript】对浏览器窗口进行访问和操作。例如弹出新的浏览器窗口,移动、改变和关闭浏览器窗口,提供详细的网络浏览器信息(navigator object),详细的页面信息(location object),详细的用户屏幕分辨率的信息(screen object),对cookies的支持等等。BOM作JavaScript的一部分并没有相关标准的支持,每一个浏览器都有自己的实现,虽然有一些非事实的标准,但还是给开发者带来一定的麻烦
也有人这么说:
ECMAScript可以理解为JS的基础语法部分
DOM可以简单理解为,使用document对象操作文档内容的编程
BOM可以理解为,使用window对象操作浏览器行为的编程
三、JavaScript特点①脚本语言
脚本语言是一种简单的程序,规模小,不需要编译,运行快,是由一些ASCII字符构成,可以使用任何一种文本编辑器编写。脚本语言是指在web浏览器内有解释器解释执行的编程语言,每次运行程序的时候,解释器会把程序代码翻译成可执行的格式。一些程序语言(如C、C++、Java等)都必须经过编译,将源代码编译成二进制的可执行文件之后才能运行,而脚本语言不需要事先编译,只要有一个与其相适应的解释器就可以执行。
②基于对象的语言
面向对象有三大特点(封装,继承,多态)缺一不可。通常"基于对象"是使用对象,但是无法利用现有的对象模板产生新的对象类型,也就是说"基于对象"没有继承的特点。没有了继承的概念也就无从谈论"多态"
③事件驱动:
在网页中执行了某种操作的动作,被称为"事件"(Event),比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。
④简单性
变量类型是采用弱类型,并未使用严格的数据类型。var a,b,c; a=123; b="abc"; a=b;
⑤安全性
JavaScript不能访问本地的硬盘,不能将数据存入到服务器上,不能对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互
⑥跨平台性
JavaScript依赖于浏览器本身,与操作平台无关, 只要计算机安装了支持JavaScript的浏览器(装有JavaScript解释器),JavaScript程序就可以正确执行。
缺点
各种浏览器支持JavaScript的程度是不一样的,支持和不完全支持JavaScript的 浏览器在浏览同一个带有JavaScript脚本的网页时,效果会有一定的差距,有时甚至会显示不出来。
四、JavaScript的引入方式1.行内引入行内引入方式必须结合事件来使用,但是内部js和外部js可以不结合事件
< !DOCTYPE html>
< html>
< head>
< meta charset="utf-8">
< title> < /title>
< /head>
< body>
< input type="button" name="button" value="https://www.songbingjia.com/android/button" onclick="alert(行内引入)"/>
< button type="button"onclick="alert(惊不惊喜意不意外)"> 点我呀< /button>
< /body>
< /html>
2.内嵌式引入
< !DOCTYPE html>
< html>
< head>
< meta charset="utf-8" />
< title> 内嵌式引入< /title>
< !-- 内嵌式引入 -->
< script type="text/javascript">
// 定义一个函数
function fun1(){
alert("helloworld")
}
< /script>
< /head>
< body>
< button type="button" onclick="fun1()"> 点我呀< /button>
< /body>
< /html>
缺点:
1.定义的JS代码只能在当前网页中使用,代码复用度低,维护性低
2.JS代码和HTML代码混合在一个文件中,可阅读性差
3.链接式引入(通过script标签引入外部JS文件)
< !DOCTYPE html>
< html>
< head>
< meta charset="utf-8">
< title> 连接式引入外部js文件< /title>
< !-- 引入外部js文件 -->
< script type="text/javascript" src="https://www.songbingjia.com/js/myjs01.js"> < /script>
< script src="https://www.songbingjia.com/js/myjs02.js" type="text/javascript" charset="utf-8"> < /script>
< /head>
< body>
< input type="button" name="" id="" value="https://www.songbingjia.com/android/点我呀" onclick="fun02()"/>
< button type="button" onclick="fun03()"> 点我呀< /button>
< /body>
< /html>
优点:
代码复用度高,更易于维护代码
注意事项:
1.在一个页面上可以同时引入多个JS文件
2.每个JS文件的引入都要使用一个独立的script标签
3.内嵌式和链接式的引入不能使用同一标签
推荐阅读
- 「音乐」aespa—Savage
- Jmeter里的全能java测试sampler - Java request
- 草稿模板
- Zabbix添加Linux监控主机
- linux非管理员添加环境变量
- 前端学习记
- #yyds干货盘点#Windows Server 2012(以上)域策略无法创建计划任务bug
- 最近学习freemarker
- PL/SQL-尚硅谷