javascript简介
javascript的实现由下列三个不同部分组成:
- 核心:ECMAScript
- 文档对象模型:DOM
- 浏览器对象模型:BOM
ECMAScript
文章主要介绍的是ECMA-263,最新的才到ES5。所以省了。因为目前主流的是ES6.
ECMAScript 6 目前基本成为业界标准,它的普及速度比 ES5 要快很多,主要原因是现代浏览器对 ES6 的支持相当迅速,尤其是 Chrome 和 Firefox 浏览器,已经支持 ES6 中绝大多数的特性。
文档对象模型 DOM (Document Object Model)
1、原因:W3C为了保证浏览器的兼容性,规划出来了DOM
2、级别:
DOM1(1998):
- DOM核心(DOM Core):规定的是如何映射基于XML的文档结构,以简化对文档的访问和操作。
- DOM HTML:拓展DOM核心添加对HTML的对象和方法。
DOM2:
- 扩充对鼠标和用户界面事件、范围、遍历等细分模块。
- 通过对象接口增加对CSS的支持。
-
- DOM Views:定义了跟踪不同文档的视图接口
-
- DOM Events:定义了事件和事件处理的接口
-
- DOM Style:定义了基于CSS为元素应用的样式接口
DOM3:
- 在DOM加载和保存模块中定义,以统一方式加载和保存文档的方法
- 在DOM验证(DOM Validation)块中定义,验证文档的方法
浏览器对象模型 BOM( Browser Object Model)
- 弹出新浏览器窗口的功能
- 移动、缩放和关闭浏览器窗口的功能
- 提供浏览器详细信息的navigator对象
- 提供浏览器所加载页面的详细信息的location对象
- 提供页面显示器分辨率详细信息的screen对象
- 对cookies的支持
- 像XMLHttpRequest和IE的ActiveXObject对象。
在HTML中使用JavaScript
</script> 元素的六个属性:
(可选)
- async:立即下载脚本,但是不应该妨碍页面的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本有效。
- charset:表示通过src属性指定的代码的字符集。
- defer:表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。
- language:已废弃。
- src:表示包含要执行代码的外部文件。src=“url”
(必选)
- type:表示编写代码使用的脚本语言的内容类型,MIME类型。默认text/javascript,
解析器在对</script>元素内部的所有代码求值完毕以前,页面中的其余代码都不会被浏览器加载显示。
带有scr的script标签元素内部不应再有额外的js代码,内部代码会被忽略的。
</script>标签的位置:
- js在head中,要全部下载、解析、求值,才能显示界面,这样影响性能。
- 在body中的最后面,能先显示界面,在对js下载、解析、求值。
同步脚本
<script type="text/javascript" defer="defer" src="example.js"> </script>
- defer标签可以让js下下载,再去加载页面,在<\/html>之后在运行脚本
- 现实中,多个defer的js脚本,在最后不一定顺序执行,因此最好只有一个延迟脚本。
最佳选择还是把js脚本放在body中的最后面
异步脚本
async
<script type="text/javascript" async src="example1.js"> </script>
<script type="text/javascript" async src="example2.js"> </script>
表示当前脚本不必等待其他脚本,也不必阻塞文档的呈现,并不保证先后顺序执行
文档模式
<!DOCTYPE HTML PUBLIC…>
混杂模式 quirks mode
标准模式 standa mode
默认是混杂模式