微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何减少代码中此类错误的频率?

看看 this JsFiddle
var requests = [
  $.ajax("http://search.twitter.com/search.json",{ data: { q: 'ashishnjain' },dataType: 'jsonp' })
    .done(function() {console.log("request");}),$.ajax("http://search.twitter.com/search.json",dataType: 'jsonp' })
    .done(function() {console.log("request");})
];

$.when(requests).done(console.log("alldone"));

预期的输出是:请求请求alldone,但实际上这打印了alldone请求请求.

在这代码中实际上有两个错误(如果你喜欢那种东西,那么它就是一个练习),但最终我认为这是因为当给出的参数没有任何意义时,JavaScript和jQuery都非常宽松.在这种环境中,“正确”的东西似乎是“做某事或什么也不做,只是不要抛出错误!”.

看到这段代码通过JsLint,并且花了我几个小时进行调试(真正的代码当然要复杂几个数量级),我想知道我还能做些什么来减少浪费时间这样的无根据宽大.这不是一个孤立的例子;它似乎一遍又一遍地发生.有什么建议?

解决方法

它实际上可以在Javascript中运行时为 check types,这只是严格不是Javascript中的首选样式. JS黑客喜欢把它挂掉.

其他黑客虽然应对这种情况,对吧?因此,我建议您调查其他方法来减少调试工作,而不是长时间地将语言或jQuery归咎于调试此问题.

以下是我能想到的一些建议:

>首先在交互式JS控制台中测试一小段代码,然后再粘贴到.js文件中:这个

>允许你快速迭代直到你做对了(你如何使用$.when()?)
>确保当您做对了,您就会明白如何使用API

>继续学习JS,并继续写更多.你做的第二个错误:没有在函数中包装console.log(“all done”)表明关于JS的基本概念还没有完全锁定到位 – 一个经验丰富的JS黑客永远不会犯这个错误.

原文地址:https://www.jb51.cc/js/157499.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐