显式检查布尔值是否被认为是错误的。做一个简单的if(success)
会更好吗?正在通过设计检查真正的错误吗?
我见过关于if (someBoolean === true)
是如何在强类型语言中使用可怕代码的各种笑话,但它在弱类型语言中也被认为是不好的?
这将适用于任何弱类型语言,做强制类型转换上的if语句。
一个具体的例子是:
var onSuccess = function (JSONfromServer) {
// explicitly check for the boolean value `true`
if (JSONfromServer === true) {
// do some things
}
}
// pass it to an ajax as a callback
doSomeAjax(onSuccess);
[编辑]
在这种特定情况下成功变量是任何有效的JSON从服务器返回。所以它可能是任何东西。如果它的布尔值为true,那么发生成功。如果它是一些错误处理对象,那么它将被处理。如果是别的东西,那么它可能会被安静地处理。
此问题已越来越服务器返回true
作为JSON和检查处理,其中操作成功的情况下的好办法。
我想避免特定于JavaScript的& AJAX虽然。
在这种特殊情况下,ajax调用将返回一些JSON数据,这些数据可能是布尔“真”或某种错误处理对象。我想最好是检查错误对象并处理它,并让`true`事件成为else块。 – Raynos 2011-01-19 12:15:31
+1表示可以返回true或*真值的函数是代码异味。 – 2011-01-19 12:16:19