我想检查给定的 Javascript 变量是否被程序中的任何 IF 语句使用。有没有办法动态地做到这一点,而不是纯静态代码分析。
我没有在这里阅读任何文件。假设我可以在运行时使用一些扩展注入一段 JS 代码,并动态查找给定变量是否通过 IF 语句。
我想检查给定的 Javascript 变量是否被程序中的任何 IF 语句使用。有没有办法动态地做到这一点,而不是纯静态代码分析。
我没有在这里阅读任何文件。假设我可以在运行时使用一些扩展注入一段 JS 代码,并动态查找给定变量是否通过 IF 语句。
这是一个坏主意。有很多事情可能会出错。你可以看看沙盒。
但是,只要您不依赖此安全性,您可能会发现这很有用:
var x = function (a, b, c) { if(a) {console.log(a)}};
var y = function (a, b, c) { if(b) {console.log(a)}};
// You can get the text of a function. Notice it's been formatted.
console.log(x.toString());
>>> "function (a, b, c) { if (a) { console.log(a) } }"
var matcher = /if ?\(.?a.?\)/g;
x.toString().match(matcher);
>>> ["if (a)"]
y.toString().match(matcher);
>>> null
需要注意的事情,我的头顶:
if (nota)
。