javaScript康复训练-2022年1月5日

前言

学习了很多次javaScript,但是都很快就忘了,没有任何一门语言,像javaScript一样,入手简单,熟练复杂的,所以,我做出一个随便的决定,从0开始,这个寒假学习javaScriipt,文章不出意外,保持日更。(除非一天都碰不了电脑)。

初步了解

javaScript诞生于1995年,目前作为一种浏览器交互语言。一个完整的javaSciprt应该由ECMA,DOM,BOM三部分组成。这里我就说点没用的知识吧。
ECMA是什么?按照我的理解,ECMA在javaScript就是一种标准,当然ECMA不仅仅用于javaScript。ECMA实际上是一种脚本在语法和定义的标准,像JScript和ActionScript中声明变量等语法中跟javaScript完全一样。因为它们都使用的ECMA这个规则。
DOM是什么?中译就是文档模型的意思,是一种标准编程接口,也是一种基于树的API文档,如下代码,转为模型图1-2,通过DOM提供的API(像我们经常使用的Document),我们可以轻松的对任意节点增删改查。当然,DOM如ECMA一样并不只针对javaScript,很多其他语言也实现了DOM模型。这里也就不深入研究这个模型了,因为是初学,知道大概就行了。

<html>
   <head>
   		<title>Sample Page</title>
   </head>
   <body>
   		<p>Hello World</p>
   </body>
</html>

在这里插入图片描述

DOM提供的接口
Node接口:它是文档中节点的基类型。定义了基本的访问和改变文档结构的方法。
Document接口:它代表整个文档。可创建文档中的各种节点(元素、注释、处理指令等),创建的节点中带有一个OwnerDoculnent属性表示创建它们的Document对象。
DocumentFragment接口:它代表文档树的子树,相当一个小型文档。
Attr接口:它代表元素节点的属性。有意思的是它并不认为是该元素节点的子节点,不构成DOM树的一部分。同时也不是DocumentFragment节点的直接子节点。
CharacterData接口:它维护了DOMsitrgn字符串并提供读写操作的接口。但不直接对应文档的某种类型节点。
Text接口:它从CharacterData继承而来。代表元素或属性的一段连续的文本内容。它有一个派生的接口CDATAsection,目的是:CDATASeciton节点的内容将不会作任何转化;使用Node中的nomraliez方法时相邻的Text节点会合并成一个节点,但使用CDATASeciton可避免合并。
Comment接口:它也从CharacterData继承而来。代表注释中的文本内容。
NodeList接口:用于管理有序的节点集。
Entity接口:它代表实体;EntityReference代表实体的引用。
NamedNodeMap接口:用于管理无序的节点集。
DOMImplementation接口:它提供与DOM模型的实例无关的接口。CreateDocument可创建一个Document对象;haseFature可判断DOM实现是否支持某一模块。
Notation接口:它代表文档中的符号定义。
ProcessingInstruction接口:它代表处理指令。
DOMException接口:异常处理。由于程序中的逻辑错误、数据丢失或DOM实现本身不稳定引起的错误。在程序处理过程中,由方法返回一个错误值。

BOM是什么?BOM(Browser Object Model) 是指浏览器对象模型,是用于描述这种对象与对象之间层次关系的模型,浏览器对象模型提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。BOM由多个对象组成,其中代表浏览器窗口的Window对象是BOM的顶层对象,其他对象都是该对象的子对象。老实说,我也没理解这个是干啥的,直接复制百度的。如果有了解这个的,请评论区留言告诉作者哦。

javaScript的初步使用

javaScript一般都在Html引入,作为脚本使用,在html中,使用Script标签引入javaScript脚本

<html>
	<head>
		<script type="text/javascript">
			function QueryDay(){
				alert("今天天气不错");
			}
		</script>
	</head>
	<body>
		<p>你好啊</p>
	</body>
</html>

下面分别介绍一下Script标签的6个属性

src:可选,导入外部脚本
type:可选,表示使用脚本语言的类型,毕竟这个世界上不仅仅只有javaScript这一门脚本语言,通常填写text/javascript
charset:可选,仅对外部脚本有效,表示外部脚本代码的字符集,大多数浏览器都会忽略他,所以很少使用这个属性。
async:可选,各位都遇到过网速很慢,打开某些网页,网页的图片啊,UI啊没加载出来的情况吧,那可能就是外部脚本没加载好的情况,因为外部脚本需要下载。设置这个属性,就可以边下载外部脚本,边加载UI。
defer:这个就是等文档啊,UI啊加载好,在执行外部脚本
language:已废弃,可以说被type替代了。

练习

这里要补充一点点小细节,如下代码就有bug,因为识别到了标签

<html>
	<head>
		<script type="text/javascript">
			function QueryDay(){
				alert("</script>");
			}
		</script>
	</head>
	<body>
		<p>你好啊</p>
	</body>
</html>

解决方式也很简单,使用转义符号\就行

<html>
	<head>
		<script type="text/javascript">
			function QueryDay(){
				alert("<\/script>");
			}
		</script>
	</head>
	<body>
		<p>你好啊</p>
	</body>
</html>

当然了,以上都没有导入外部文件。下面是导入外部脚本的写法

//js/study.js路径下的代码,因为是外部引用所以没必要加<script>标签,<script>标签是html的
			function QueryDay(){
				alert("<\/script>");
			}
<html>
	<head>
		<script src="js/study.js"></script>
	</head>
	<body>
		<p>你好啊</p>
	</body>
</html>

F12,发现JS文件已经加载
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值