No es lo mismo drvy. Puede que a value se le asignara false de valor, 0 o null. Todos ellos equivalen a evaluación negativa y con tu código cambiarías su valor de value 1-1 a ''
Lo que trata el código es de comprobar si un valor se definió. Que por cierto, tampoco es correcto el código. Le falta un = porque se hace conversión de tipos.
value = "undefined" no es lo mismo que value = undefined;
En cambio en ese código de ejemplo se convierten para comparar.
Tampoco es muy eficiente. Para que reasignar un valor si ya lo tiene? Qué pasa si value es un objeto enorme del que depende todo el programa?
value === undefined ? value=0 : 0 ;
Si value contiene el dato primitivo undefined ? asígnale un valor; en caso contrario no hace nada.
En este caso casi que es mejor usar un if:
if (value === undefined) value = 0;
Se entiende mejor, menos código y más eficiente.
Ojo, no sabemos que es value, puedeser un método o una función entre otras cosas. Cundo haces un return de nada dentro de una función o método, se retorna undefined. Asique podría utilizarse para comprobar si por ejemplo una función recibió argumentos/parámetros.
function ej()
{
if (arguments.length === 0)
return;
else
{
arguments[0] ...
/*trabajar con argumentos*/
}
}
var value = ej();
value = ej("hola");