我有發送回像這樣的對象的服務器響應:速記避免falsy 0值
{
success: integer
}
在客戶端,我有
return body && body.success;
的問題是,整數可以是零,在這種情況下,上述將返回body
而不是body.success
。
什麼是我可以用來總是返回值的最佳速記?
我有發送回像這樣的對象的服務器響應:速記避免falsy 0值
{
success: integer
}
在客戶端,我有
return body && body.success;
的問題是,整數可以是零,在這種情況下,上述將返回body
而不是body.success
。
什麼是我可以用來總是返回值的最佳速記?
將這項工作:
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;
注意,這個問題要求'最好的簡寫' - 儘管你的代碼在技術上是正確的,但最好的簡寫形式是'return body && body.success;' - 儘管如此,你現在正在編輯它,多餘的 –
更多'typeof'檢查類型檢查的神! – zerkms
你應該總是在後臺初始化屬性。我會設置爲「-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>
它在任何情況下返回的數值。 「在這種情況下,上述將返回'body.success'而不是'body.success [0]'。」。 - - 這不是真的。 – zerkms
@plalx抱歉,我沒有關注你在說什麼 –
我簡化了這個問題,我認爲現在很容易理解,謝謝 –