《JS高级程序设计》笔记
第一章 简介
JS实现由三部分组成
ECMAScript(核心)
DOM(文档对象模型)
BOM(浏览器对象模型)
ECMAScripe
主要是定义基本的语法,浏览器提供基本的ECMAScripe实现,同时也会提供语言的扩展,以便语言与环境之间对接交互。
ECMAScripe与Web浏览器没有依赖关系。
DOM(文档对象模型)
DOM是针对XML,但经过扩展用于HTML的应用程序编程接口。
DOM把整个页面映射为一个多层节点结构,HTML和XML页面中的每个组成部分都是某种类型的节点。
通过DOM开发人员获得了控制页面和结构的主动权。
借助DOM提供的API开发人员可以轻松自如的删除、添加、替换或修改任何节点。
第二章 在HTML中使用JavaScript
<Script>元素
向HTML中插入JavaScript的主要方法就是使用<Script>元素
Script元素的属性
src(可选) : 表示包含要执行代码的外部文件
type (可选) : 表示编写代码使用的脚本语言 js基本都用。text/javascript
async (可选) :表示应该立即下载脚本,但不妨碍页面中的其他操作
defer (可选) : 表示脚本可以延迟到文档完全被解析和显示之后再执行。 只对外部脚本文件有效
charset (可选): 表示通过src属性指定的代码的字符集
使用<scrpit>元素的方式:
-
直接在页面中嵌入JavaScript代码
包含在<script>元素内部的JavaScript代码将被从上到下依次解释
在解释器对<Script>元素内部的所有代码求值完毕之前,页面中的其余内容都不会被浏览器加载显示
eg:
<script type="text/javascript">
function sayHi(){
alert("Hi!");
}
</script> -
引入外部的JavaScript文件
如果使用外部JavaScript文件那么src属性就是必须的,这个属性的值是一个指向外部JavaScript文件的链接
<script type="text/javascript" src="example.js"></script>不存在defer和async属性,浏览器就会按照<script>元素在页面出现的先后顺序对他们进行解析
带有src属性的<script>元素不应该在<script>之间包含额外的JavaScript代码</script>
与嵌入式代码一样,在解释外部JavaScript文件时,页面处理也会暂时停止
标签的位置
现代Web应用程序一般都把全部JavaScript引用放在<body>元素中页面内容的后面
这样,在解析包含的JavaScript代码之前,页面的内容将完全呈现在浏览器中,因此用户也会因为浏览器缩短了窗口空白的时间,感觉打开页面加快了
延迟脚本
将defer属性设置为 defer="defer" 只适用于外部脚本
这个属性的用途是表明脚本在执行时不会影响页面的构造,就是脚本会被推迟到整个页面都解析完了再执行
异步脚本
把 async属性设置为async="async" 只适用于外部脚本
标记为async的脚本不保证按照指定先后顺序执行
在使用 async 属性时候,确保两者之间互不依赖的重要性
嵌入代码与外部文件优点
可维护性
把所有的JavaScript文件都放在一个文件夹中,维护起来就轻松很多
可缓存
浏览器能够根据具体的设置缓存链接的所有外部JavaScript文件
适应未来
<noscript>元素
这个元素可以包含能够出现在<body>中的任何HTML元素
<noscript>元素中的内容在以下情况出现
-
浏览器不支持脚本
-
浏览器支持脚本,但脚本被禁用了

浙公网安备 33010602011771号