Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Shorthand if/else statement Javascript

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 that didn't work. What's the correct way to go about this?

like image 544
Elliot Bonneville Avatar asked Mar 25 '12 22:03

Elliot Bonneville


2 Answers

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.<name>:

var x = typeof y != "undefined" ? y : 1; 
like image 90
Amber Avatar answered Sep 19 '22 14:09

Amber


Another way to write it shortly

bePlanVar = !!((bePlanVar == false));  // is equivalent to  bePlanVar = (bePlanVar == false) ? true : false;  // and   if (bePlanVar == false) {     bePlanVar = true; } else {     bePlanVar = false; } 
like image 37
Hu3nn1 Avatar answered Sep 20 '22 14:09

Hu3nn1