簡體   English   中英

Javascript 三元運算符的使用

[英]Javascript ternary operator usage

以下是有效的 JS 代碼嗎?

response.continueRequest = (response.continueRequest == undefined) ? false : response.continueRequest;

response 實際上是一個 AJAX 響應對象。

是的,這意味着

if (response.continueRequest == undefined){
    response.continueRequest = false;
}else{
    response.continueRequest = response.continueRequest;
}

是的,它是一個有效的 JavaScript 代碼。 也可以縮短:

response.continueRequest = response.continueRequest ? response.continueRequest : false;

JavaScript 中的類型強制將response.continueRequest轉換為 boolean,如果為 true,則賦值為response.continueRequest的實際值,否則賦值為false

這樣做更合乎邏輯,盡管您可以按照示例中的最初方式進行操作:

response.continueRequest = !response.continueRequest ? false : response.continueRequest;

但是,如果您確實需要這樣做,則此行提示您的代碼中的其他內容並沒有很好地解決。

編輯:

您可以在條件中使用response.continueRequest

if (response.continueRequest) {
    // condition body
}

如果response.continueRequest undefined ,則強制類型為false ,並且不會進入 if 子句。 我想,這樣的事情就是你的目標。

請記住, undefined與未定義不同。 例子:

var something;
console.log(something); // undefined
console.log(nothing); // Uncaught ReferenceError: nothing is not defined

使用“===”運算符

response.continueRequest = (response.continueRequest === undefined) ? false : response.continueRequest;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM