速记避免虚假0值

时间:2017-04-07 00:16:11

标签: javascript json node.js

我有一个服务器响应,它发回一个像这样的对象:

{
 success: integer
}

在客户端,我有

return body && body.success;

问题是整数可能为零,在这种情况下,上述内容将返回body而不是body.success

我可以使用什么最好的速记来始终返回值?

2 个答案:

答案 0 :(得分:0)

您应该始终在后端初始化您的媒体资源。我会设置为" -1"。



function ajaxCall() { 
  return { success: true, id: 10 }; 
  //return null; 
}

function GetData() {
  var myData = ajaxCall();

  if (typeof myData === "undefined" 
  || myData == null 
  || typeof myData.success === "undefined" 
  || myData.success == null) {
    return { success: false, id: 0 };
  } 

  return myData;
}

var body = GetData();

// init
(function(){
 document.getElementById("MyMessage").innerHTML = ((body.success) ? "Success - " + body.id : "Failed") ;
})();

<div id="MyMessage"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:-1)

这会有效吗?

return body && (typeof body.success !== "undefined" ? body.success : false);

括号可能不正确,但这应该检查身体定义?如果是这样,是否定义了body.success?如果不回归身体。

如果定义了body.success,则返回body.success。如果没有,请回复身体。

可以这样写:

If (body)
    return (typeof body.success !== "undefined" ? body.success : body);
else return false;