Javascript三元运算符用法

时间:2015-09-02 13:36:37

标签: javascript

以下是有效的JS代码吗?

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

响应实际上是一个AJAX响应对象。

3 个答案:

答案 0 :(得分:1)

是的,这意味着

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

答案 1 :(得分:1)

是的,它是一个有效的JavaScript代码。它也可以缩短:

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

JavaScript中的类型强制将response.continueRequest转换为布尔值,如果为真,则会分配response.continueRequest的实际值,否则会分配false

这样做更合乎逻辑,尽管你最初可以在你的例子中这样做:

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

然而,如果你真的需要这样做,那么这行代码会提示你代码中的其他内容并不是很好解决。

编辑:

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

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

如果response.continueRequestundefined,则为false类型为强制,且不会输入if子句。我想,这样的事情就是你的目标。

请记住,undefined与未定义的不同。例如:

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

答案 2 :(得分:0)

使用'==='运算符

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