组成:
js是由核心ECMAScript、文档对象模型DOM、浏览器对象模型BOM三部分组成。
- ECMAScript:定义了语言的语法、类型、语句、关键字、保留字、操作符、对象。有普通模式和严格模式的区分。
- 文档对象模型(DOM):由XML经过扩展用于HTML的应用程序编程接口,DOM把页面映射为一个多层节点接口,并提供了相应的操作方法。DOM并不是仅仅针对HTML的,DOM分为DOM核心和DOM HTML。还有几种语言都有这自己的DOM标准。比如,SVG(可伸缩矢量图)、MathML(数学标记语言)、SMIL(同步多媒体继承语言)。
- 浏览器对象模型(DOM):浏览器显示的页面以外的部分。比如,弹出新浏览器窗口功能、移动/缩放/关闭浏览器、navigator、location、screen、cookie等。
js的使用:
标签-script,目前支持的常用属性:async(src)、defer(src)、src、type(text/javascript)。
- async:立即下载脚本,但不妨碍页面中的其它操作,比如下载其它资源或等待加载其它脚本,只对外部脚本文件生效
- defer:表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件生效。IE7及更早版本对嵌入脚本也支持这个属性。
- src:引用并执行外部脚本文件。
- type:脚本语言的内容类型(MIME类型)。默认值为text/javascript。
一般来说,脚本默认执行顺序是从上到下一次进行加载和执行的,但是由于defer、async两个属性,脚本的加载和执行,可以变成异步的了。
defer和async:
告诉浏览器,立即下载文件(脚本),并在</html>标签执行后再执行,
但是在现实中,同时定义的两个脚本并不一定按照顺序执行,
因此最好只包含一个延迟脚本,或者保证多个异步脚本没有依赖关系
- 外部文件的有点:可维护性、可缓存、适用未来