我想检查一个给定的Javascript变量是否被程序中的任何IF语句使用。有没有办法动态地执行此操作而不是纯静态代码分析。
这里没有读取任何文件。假设我可以在运行时使用一些扩展注入一段JS代码,并动态查找给定变量是否通过IF语句。
答案 0 :(得分:1)
这是一个坏主意。有很多事情可能会出错。您可以查看sandboxing。
但是,只要您不依赖于此安全性,您可能会觉得这很有用:
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)
。