随着requirejs,angularJS2,ECMAscript6等的出现,web前端的模块化编程已经成为了一种趋势,其重要性不言而喻。为什么js的模块化编程会这么重要呢?这得从js中变量的作用于说起,js中只有两种作用于,函数级作用域和全局作用域。函数级作用域内定义的变量在函数执行完后被释放,函数之外定义的作用于叫做全局作用域,他会从页面加载到关闭页面的过程中一直存在。这会有一个严重的问题,那就是变量污染。举个例子:
在一个页面中依次引用了三个js文件,分别为a.js,b.js,c.js,在a.js中定义了:var number=1;在b.js中定义了:var number=2;在c.js中输出:consloe.log(number);输出结果会是什么呢?答案是:2。而如果将a.js和b.js在页面中的引用顺序颠倒,输出结果又会是什么呢?答案是:1,这就是全局变量的污染,这就是js模块化编程如此重要的根本原因!因为它能解决全局变量污染的问题!
感谢阅读,欢迎交流探讨!鞠躬^O^