[1]工程师甲编写功能A var a = 1; var b = 2; alert(a+b); [2]工程师乙添加新功能B var a = 2; var b = 1; alert(a-b); [3]上一步中,工程师乙在不知情的情况下,定义了同名变量a,产生冲突.于是使用匿名函数将脚本包起来,让变量作用域控制在匿名函数之内. //功能A (function(){ var a = 1; var b = 2; alert(a+b); })(); //功能B (function(){ var a = 2;…
在一个index.html文件里先后导入a.js和b.js文件a.js文件里写上var s = 2;console.log(s);b.js文件里写上var s = 5;这时a.js和b.js用了相同的变量名,这就是命名冲突命名冲突会导致如果修改b.js里那个重名的变量,则a.js里的重名变量也会被修改但这里a.js里仍然输出2,因为这里是先执行a.js再执行b.js,当在b.js里修改s的值时,a.js已经执行完了所以虽然s的值被修改了,但是似乎对a.js没什么影响 然而,当a.js里有异步执行…