js预解释(预编译):在Javascript真正被解析之前, js解析引擎会首先把整个文件进行预处理, 以消除一些歧义. 这个预处理的过程就被称为预解释
- 在浏览器环境中,
js引擎
会整合<script>
标签中的内容, 产生window对象
, 这个window对象就是全局对象 - 在node环境中, 会产生
global对象
全局变量:
在<script>
标签中声明的变量为全局变量
, 全局变量会作为window
对象的属性存在!!
var a = 100
console.log(a)
console.log(window.a)
这里打印a实际上相当于打印window
对象的a属性
整合:因为js引擎
会把所有的<script>
标签整合到一起, 生成唯一的一个window
对象,所以下面的代码第二个script标签中的a值为100
<script>var a = 100console.log(a)console.log(window.a)
</script>
<script>/