你需要几个工具。
首先,让自己成为一个真正的调试器。我使用 Chrome 内置的那个。Safari 和 Firebug 中内置了一个类似的插件,可作为 Firefox 的插件使用。这将允许您设置断点并单步执行您的代码并查看到底发生了什么。
其次,非常习惯于通过jsLint运行您的代码。这将向您展示许多明显的拼写错误,并鼓励您从一开始就编写健壮的代码。
三、开始写strict
模式。这将再次防止一些明显的拼写错误,并迫使你养成一些好习惯。
四、console.log()
需要时使用。一旦你有了调试器,它的输出将显示在浏览器中任何页面的调试器的调试控制台中,包括 jsFiddle 页面。您必须在 jsFiddle 的正确框架上调用调试器,然后它才能正常工作。我既使用常规调试器,也console.log()
一直使用 jsFiddle。在 jsFiddle 和调试器中需要一些计算才能找到您自己的代码设置断点的位置,但是一旦找到它,它就很容易使用。
第五,javascript 根本不是 C++。虽然语法看起来很熟悉,但使用匿名函数和闭包以及对象和原型的方式却大不相同。作为一个在学习 javascript 之前使用 C++ 编程很多很多年的人,我非常感谢我现在可以在 javascript 中做的事情,在 C++ 中做的工作要多得多,但是我花了一段时间才让我的大脑进入一种新的思维模式。在 javascript 开发的头几年,我花了太多时间试图模仿 C++ 技术,而不是仅仅学习更好的方法来实现 javascript 中的目标。
第六,您将不得不改变编写和测试代码的方式,因为缺少为您发现错误的编译器。我记得在 C++ 时代,当我需要重构某些东西时,我可以进行大量更改,然后让编译器找到我需要修复语法的所有其他地方。你不能用javascript做到这一点。当您进行大量更改时,您可以通过 jsLint 运行以发现一些问题,然后您实际上需要执行每条路径以确保一切正常。这有点痛苦。
第七,找到单元测试的策略/工具。一旦一个项目获得了超过几个功能,您将从构建单元测试中受益匪浅,您可以在任何时候进行重大更改时运行这些单元测试。与没有单元测试相比,他们都会在更短的时间内为您找到问题,并且当您看到需要时,他们会给您重构和清理代码的勇气,因为您知道单元测试会告诉您一切是否正确再次工作。这是额外的前期工作,可以在未来多次获得回报。