Javascript Firebug调试器赢得';不能正确识别语法错误;需要解决方案或高级开发环境

Javascript Firebug调试器赢得';不能正确识别语法错误;需要解决方案或高级开发环境,javascript,debugging,firebug,development-environment,syntax-error,Javascript,Debugging,Firebug,Development Environment,Syntax Error,从C#/WPF到HTML5/JavaScript的转换让我很苦恼。我原以为挑战性的部分是学习新的语言、思考问题的新方法等等,但那是容易的部分。真正的障碍是试图使用被称为Firebug的荒谬环境调试任何合理大小的应用程序。我选择Firebug是因为StackOverflow.com上的大多数人都在使用它。但是男人。。我真的不明白你们怎么用这个东西。它是如此充满了表演的障碍。我之前发布了Firebug在调试计时器回调时的一个主要缺陷。但今天的萤火虫体验近乎疯狂 简而言之,在某些未知条件下,如果遇到语

从C#/WPF到HTML5/JavaScript的转换让我很苦恼。我原以为挑战性的部分是学习新的语言、思考问题的新方法等等,但那是容易的部分。真正的障碍是试图使用被称为Firebug的荒谬环境调试任何合理大小的应用程序。我选择Firebug是因为StackOverflow.com上的大多数人都在使用它。但是男人。。我真的不明白你们怎么用这个东西。它是如此充满了表演的障碍。我之前发布了Firebug在调试计时器回调时的一个主要缺陷。但今天的萤火虫体验近乎疯狂

简而言之,在某些未知条件下,如果遇到语法错误,Firebug将不会报告错误,而是无法将整个脚本文件加载到内存中,并且不会显示任何错误信息。今天我处理了一个语法错误,它是由于逗号放错了位置而悄悄出现的。任何像样的调试器都只会突出显示问题并停止执行。不是萤火虫。它迫使你一个文件一个文件地调查,在你试图找出语法错误到底在哪里的时候,一个一个地注释出来。这不仅仅是一些“边缘情况”。考虑这个恶意的JavaScript片段:

var boo;
boo.SelectEntityPopupXXX=(function(){
    var hey={p: 1,z: 2,goob=this};
}());
有一个语法错误。“goob”后面应该有一个冒号,而不是等号。如果你的应用程序有50个不同的JavaScript文件,而这个坏片段就在其中一个文件中,Firebug不会告诉你。它将无法将整个脚本文件加载到内存中。这取决于你去找出50个文件中哪一个没有被加载。然后,您必须随机注释/取消注释该文件的内容,直到您缩小代码片段的范围并意识到其中有一个错误的等号。那简直是疯了

对于大多数语法错误,Firebug都以预期的方式运行。但它偶然发现了足以让人严重恼火的东西。这一点,再加上其他无数的“show stopper”bug,使得Firebug环境除了最简单的web应用程序之外,对所有应用程序都毫无用处。因此,问题是:

[1] 是否有某种语法错误标志或设置我遗漏了,导致这种疯狂的行为?如果有“随机忽略语法错误并混淆其位置”复选框,我想取消选中它

[2] 对于Mac来说,一定有一个比Firebug更好的开发环境……或者至少,我不能想象有比Firebug更糟糕的开发环境。你有什么建议吗

谢谢

更新:


为了那些真正关心调试的人(而不是收集站点金币或这些上/下投票所代表的任何东西),我想尝试在这个线程被终止之前插入一条评论……我注意到Safari和Chrome的调试环境都要可靠得多。我可以验证上面讨论的语法错误是否在Safari和Chrome中正确识别。我在另一篇文章中提到的主要计时器回调错误也是特定于Firebug的。说够了。再见Firebug。

我更喜欢用Chrome来开发任何网站/应用程序。Chrome有一个
调试器
行,有时可以工作。JS开发的关键是警报。只需提醒变量值和元素值即可解决问题。而且@Quentin是正确的。语法错误是由
=
运算符引起的。要在JS对象中设置值,您必须使用
操作符。

当我在页面中运行该代码并打开Firebug时,它会显示“缺少:在属性id之后”,并指向
=
。您是偶然在PC上运行的吗?我正在用iMac运行。。。这并不重要。你所引用的错误是我所期望看到的。这个问题是间歇性的,据我所知,在更大的项目上似乎更常见[10+个脚本文件]。+1因为Firebug可能是一个真正的POS,这显然不受欢迎,但却是真实的认识!我大体上同意你使用alert()。在任何其他情况下都是正确的,但在Firebug的这个特定情况下,即使alert()语句紧跟在语法错误之前,也不会显示它。。。因为整个有问题的JavaScript文件无法加载。这很奇怪。你击中了头上的钉子:铬。这是我选择的道路,因此我会将你的答案标记为可接受的答案。另外,谢谢你认真阅读这个问题。这个网站上的许多人似乎更沉迷于琐碎的“投票”问题,而不是实际学习一些东西。我想念USENET(