简写if/else语句Javascript

Ell*_*lle 41 javascript shorthand

我想知道是否有更短的方式来写这个:

var x = 1;
if(y != undefined) x = y;
Run Code Online (Sandbox Code Playgroud)

我最初尝试过x = y || 1,但那没用.什么是正确的方法去做?

Amb*_*ber 88

var x = y !== undefined ? y : 1;
Run Code Online (Sandbox Code Playgroud)

请注意,var x = y || 1;将分配1任何情况下y是falsy(例如false,0,""),这可能是为什么它为你"没有工作".此外,如果y是一个全局变量,如果它确实没有定义,你可能会遇到错误,除非你访问它window.y.


正如vol7ron在评论中建议的那样,您还可以使用typeof以避免将全局变量引用为window.<name>:

var x = typeof y != "undefined" ? y : 1;
Run Code Online (Sandbox Code Playgroud)


小智 18

另一种写作方式

bePlanVar = !!((bePlanVar == false));

// is equivalent to

bePlanVar = (bePlanVar == false) ? true : false;

// and 

if (bePlanVar == false) {
    bePlanVar = true;
} else {
    bePlanVar = false;
}
Run Code Online (Sandbox Code Playgroud)