Shorthand if/else statement Javascript

前端 未结 7 1441
难免孤独
难免孤独 2020-12-07 16:57

I\'m wondering if there\'s a shorter way to write this:

var x = 1;
if(y != undefined) x = y;

I initially tried x = y || 1, but

7条回答
  •  生来不讨喜
    2020-12-07 17:13

    var x = y !== undefined ? y : 1;
    

    Note that var x = y || 1; would assign 1 for any case where y is falsy (e.g. false, 0, ""), which may be why it "didn't work" for you. Also, if y is a global variable, if it's truly not defined you may run into an error unless you access it as window.y.


    As vol7ron suggests in the comments, you can also use typeof to avoid the need to refer to global vars as window.:

    var x = typeof y != "undefined" ? y : 1;
    

提交回复
热议问题