远古时期
time 3m41s
IE6之前 是没有JS引擎
渲染引擎
js引入
time 5m
<script·type="text/javascript">
</script>
代码多了,引入js文件
<script src="js/index.js"></script>
分js与html
time 7m21s
因为如果把逻辑都写在一个html、js中就太多了
所以分为多个html1、html2,index1js,index2.js
common.js
time 9m26s
如果相同的逻辑,不想写两遍,所以抽出来
抽出来放在common.js中
有问题了,可以common中有许多方法,html2用不到,可能html2只想用到里面几个方法
我不能光通过以页面为基础来分程序块分JS文件
js模块
time 15m12s
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script src="js/module_a.js"></script>
<script src="js/module_b.js"></script>
<script src="js/module_c.js"></script>
<script src="js/index.js"></script>
</body>
</html>
index
console. log(a);
console.log(b);
console.log(c);
// module_a
var a = [1, 2, 3, 4, 5].reverse();
// module_b
var b = a.concat([1, 2, 3, 4]);
// module_c
var c = b.join('-');
问题
time 16m26s
代码块顺序不能颠倒
<script src="js/index.js"></script>
<script src="js/module_a.js"></script>
<script src="js/module_b.js"></script>
<script src="js/module_c.js"></script>
time 17m50s
这4个脚本共用了一个全局作用域
JS作用域-全局作用域
// module_a
var a = [1, 2, 3, 4, 5].reverse();
// module_b
var b = a.concat([1, 2, 3, 4]);
// module_c
var c = b.join('-');
//module_a中的a被覆盖了
var a =1;
变量覆盖->变量重名->污染全局
模块化解决的问题是:
1、加载顺序
2、污染全局
模块化要解决以上的问题,但问题是一点一点解决的