switch operator abreviado javascript shorthand

abreviado - javascript ternary operator



Breve declaraciĆ³n if/else Javascript (5)

De otra manera que ternario, usando cortocircuito:

typeof y !== ''undefined'' && y || 1

Aunque todavía creo ternario más legible ...

Me pregunto si hay una manera más corta de escribir esto:

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

Inicialmente intenté x = y || 1 x = y || 1 , pero eso no funcionó. ¿Cuál es la forma correcta de hacerlo?


Esta es una forma de hacerlo que funciona, pero puede que no sea la mejor práctica para cualquier lenguaje:

var x,y; x=''something''; y=1; undefined === y || (x = y);

alternativamente

undefined !== y && (x = y);


Otra forma de escribirlo en breve

bePlanVar = !!((bePlanVar == false)); // is equivalent to bePlanVar = (bePlanVar == false) ? true : false; // and if (bePlanVar == false) { bePlanVar = true; } else { bePlanVar = false; }


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

Tenga en cuenta que var x = y || 1; var x = y || 1; asignaría 1 para cualquier caso donde y es falso (por ejemplo, false , 0 , "" ), que puede ser el motivo por el cual "no funcionó" para usted. Además, si y es una variable global, si realmente no está definida, es posible que se window.y un error a menos que acceda a ella como window.y .

Como sugiere vol7ron en los comentarios, también puede usar typeof para evitar la necesidad de referirse a variables globales como window.<name> :

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


y = (y != undefined) ? y : x;

Los paréntesis no son necesarios, solo los agrego porque creo que es más fácil leerlos de esta manera.