给定Javascript函数,是否可以验证函数没有副作用;即,该函数不会更改在函数范围之外声明的任何变量的值?
答案 0 :(得分:3)
您需要为JavaScript编写效果分析,这需要JavaScript的效果语义。一些需要考虑的事项:
人们已经为不纯语言编写了类型系统,以静态确定是否存在副作用。 Ben Lippmeier's thesis涵盖了很多方面。
答案 1 :(得分:0)
如果它访问函数中未定义的任何变量,当然它会影响任何可能具有相同名称的全局变量。
您可以查看JSLint和ADSafe并根据这些工具运行您的文件。
HTH。