gpt4 book ai didi

javascript - 如何通过静态代码分析显示所有JavaScript全局变量?

转载 作者:行者123 更新时间:2023-11-28 04:36:49 26 4
gpt4 key购买 nike

我知道我可以在 Chrome 或 FF 中输入以下命令:

Object.keys(窗口);

但这会显示 DHTMLX 内容以及我不感兴趣的函数名称。并且它不会显示尚未执行的函数中的变量。我们有超过 20,000 行 JavaScript 代码库,所以我更喜欢静态代码分析。我发现JavsScript Lint 。这是一个很棒的工具,但我不知道如何使用它来显示全局变量。

所以我正在寻找内存泄漏、忘记 var 关键字等等...

最佳答案

为了[仅]执行您所要求的操作,我认为您正在寻找此:

for each (obj in window) {
if (window.hasOwnProperty(obj)) {
console.log(obj);
}
}

我没有检查该代码,这与我不同,但你明白了。首先尝试设置一些内容 (var spam = "spam";),您将在控制台上看到它的报告,而不是您要求避免的问题。

也就是说,JLRishe is right ; JSLint 在浏览器中执行 JavaScript,无需“打电话回家”,因此请随意运行它。还有许多用于 JSLinting 代码的离线工具。我用plugin for Sublime Text , 例如。

如果您想要一些最简单的 html/JavaScript 代码来“包装”JSLint,我有一个示例 here 。只需下载the latest jslint.js file from Crockford's repository进入同一个目录,噗,您正在使用 JSLint.js 的本地副本进行 linting。 编辑:在新答案中添加了代码 here .

尽管了解当您访问 JSLint.com 时,您会使用该包装器在本地进行 linting 。老实说,我可以有信心地说,Crockford 宁愿看到我们的代码。 ;^) 您从 JSLint.com 下载 JSLint.js(实际上 webjslint ,几个文件的缩小编译),但在浏览器中执行。

(诚然,您在技术上是正确的 - 您永远不知道该网站何时会受到损害,并且为了完全正常,您每次抓取时都 sh/c/ould vet jslint.js一个新的副本。在本地运行更安全,但在撰写本文时,使用 JSLint.com 似乎是安全的。只需在运行一些测试、非专有代码时注视您最喜欢的浏览器的“网络”选项卡,看看是否有任何通话发生。或者拔掉盒子的网线!)

Rick's answeruse "use strict";这是另一个很好的建议。

关于javascript - 如何通过静态代码分析显示所有JavaScript全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44131131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com