ECMAScript是标准,JavaScript是它的实现。
Javascript脚本语言包含三个组成部分:ECMAScript标准规范、文档对象模型(DOM)和浏览器对象模型(BOM)。
在设计实现JavaScript脚本语言的语法和基本对象这些核心内容时所遵循的就是ECMAScript标准规范。
文档对象模型(DOM)是用于描述JavaScript脚本语言处理网页内容的方法和接口。
浏览器对象模型(BOM)是用于描述JavaScript脚本语言与浏览器进行交互的方法和接口。
JavaScript代码解释器(JavaScript引擎):JavaScript作为直译式的脚本语言,需要通过代码解释器来执行脚本程序,其实就是负责将代码解释成机器语言,然后交由计算机操作系统执行的的工具。代码解释器本质上也是一种计算机程序,类似于Java虚拟机的概念。只不过代码解释器是负责运行脚本代码的程序,在操作系统中处于较高的级别。
主流的JavaScript代码解释器:
Google的Chrome浏览器:使用V8引擎;
Mozilla的FireFox浏览器:目前使用的是JaegerMokey引擎;
IE和Edge浏览器:Chakra引擎;
Opera浏览器:Cakakan引擎;
Safari浏览器:SquirrelFish系列引擎。
ECMAScript脚本运行机制,中断机制执行。
HTML:自上而下执行。
所以,按照这种规则,我们总结一下ECMAScript脚本代码的位置在HTML网页中定义的原则。
- 尽可能地将脚本代码放在<body>标签之后,这样在HTML网页内容加载时就不会因为脚本代码的中断执行机制而延迟阻塞;
- 如果要实现一些页面特效,需先动态加载一些脚本代码,应放在<head>标签内或者<body>标签的前面;
- 对于需要使用ECMAScript脚本代码动态访问操作页面DOM元素的情况,要将脚本代码放在DOM元素定义之后;否则,如果放在DOM元素定义之前,就回因为DOM元素还没有生成而出现脚本代码访问错误或无效操作的情况。