Javascript 如何使用调试器根据整型变量的值查找整型变量?
有没有办法在JS中找到所有具有特定值的变量 我知道有一个变量包含整数374646,但我在源代码中找不到它(大型代码库)Javascript 如何使用调试器根据整型变量的值查找整型变量?,javascript,Javascript,有没有办法在JS中找到所有具有特定值的变量 我知道有一个变量包含整数374646,但我在源代码中找不到它(大型代码库) 我认为可以通过递归检查this返回的所有变量来实现解决方案,但我不是JS开发人员 更新: 我认为最初的问题令人困惑 有没有办法在浏览器调试器(Chrome/Firefox)中通过值查找变量 我认为可以通过递归地检查由此返回的所有变量来实现解决方案,但我不是JS开发人员 不,你不能。属性不是变量(除非有一种特殊情况:某类全局变量是全局对象的属性) 除非您的变量是全局变量,并且它是
我认为可以通过递归检查
this
返回的所有变量来实现解决方案,但我不是JS开发人员
更新:
我认为最初的问题令人困惑
有没有办法在浏览器调试器(Chrome/Firefox)中通过值查找变量
我认为可以通过递归地检查由此返回的所有变量来实现解决方案,但我不是JS开发人员 不,你不能。属性不是变量(除非有一种特殊情况:某类全局变量是全局对象的属性) 除非您的变量是全局变量,并且它是全局对象上可用的属性,否则您无法找到它。无法获得其他类型变量的列表 例如,全局范围内的代码无法在以下内容中找到
a
:
consthandle=(()=>{
常数a=374646;
返回设置间隔(()=>{
控制台日志(a);
}, 500);
})();
setTimeout(()=>clearInterval(句柄),4000)代码>
请注意,这很危险,不要访问您不知道的网站!!!你所有的数据都可能被盗,你的女朋友可能会受伤,你的祖母可能会死,你的狗可能会咬你的胯部,世界上所有的冰川都可能融化,你可能会得疱疹,甚至引发全球核战争!!使用风险自负!如果您不知道在没有跨域策略的情况下运行浏览器意味着什么,那么这将是一个非常高的风险强>
在禁用跨域策略的情况下运行浏览器(例如,Chrome
/Chrome
使用--禁用web安全
param,注意:在运行命令之前杀死所有Chrome实例,否则它将不起作用),然后在控制台中执行此功能:
function globalSearch(startObject, value) {
var stack = [[startObject,'']];
var searched = [];
var found = false;
var isArray = function(test) {
return Object.prototype.toString.call( test ) === '[object Array]';
}
while(stack.length) {
var fromStack = stack.pop();
var obj = fromStack[0];
var address = fromStack[1];
if( typeof obj == typeof value && obj == value) {
var found = address;
break;
}else if(typeof obj == "object" && searched.indexOf(obj) == -1){
if ( isArray(obj) ) {
var prefix = '[';
var postfix = ']';
}else {
var prefix = '.';
var postfix = '';
}
for( i in obj ) {
stack.push( [ obj[i], address + prefix + i + postfix ] );
}
searched.push(obj);
}
}
return found == '' ? true : found;
}
之后,您可以使用以下命令按值搜索变量:
globalSearch(window,value);
再一次!记住,这是危险的,不要访问你不知道的网站!!!免责声明:如果有什么事情发生,你甚至没有看到那篇文章,我没有写!我不知道什么是堆叠溢出!从未来过这里。
这是调试用的预算是多少/s“我认为可以通过递归地检查由它返回的所有变量来实现一个解决方案”-你不能<代码>此
不返回变量。我的意思是,在browsersmaybe的调试器控制台中,您可以在此处找到答案:,我的问题没有得到回答,但仍然有很多答案与您的问题有关