你需要为JavaScript编写一个效果分析,这需要一个JavaScript的效果语义。需要考虑以下几点: 代码是否访问具有副作用的基本操作?(例如内存写入、磁盘写入、文件IO、更新任何全局状态?) 如果代码确实写入变量,它们是否逃逸本地作用域?(即它是否在ST或IO单子中?) 是否通过共享变量进行任何通信? 人们已经为不纯粹的语言编写了类型系统,以静态确定是否存在副作用。 Ben Lippmeier's thesis涵盖了很多内容。
如果它访问了任何在函数内未定义的变量,那么它当然会影响可能具有相同名称的任何全局变量。 您可以查看JSLint和ADSafe,并对您的文件运行这些工具。 http://www.jslint.com/ http://www.adsafe.org/ HTH.