为避免污染JavaScript全局范围/顶级文件范围,应该尽量避免在全局作用域下定义变量和函数。可以使用匿名自执行函数和模块的方式,来在局部作用域下定义变量和函数。示例如下:
// 原始代码 var x = 1;
function add(y) { return x + y; }
// 修改后的代码 (function() { var x = 1;
function add(y) {
return x + y;
}
// 使用add函数
console.log(add(2));
})();
// 使用ES6模块 // math.js let x = 1;
export function add(y) { return x + y; }
// main.js import { add } from './math.js';
console.log(add(2));