Supongamos que tenemos un objeto que contiene nuestra configuración. Pero no sabemos si este objeto existe. Entonces podriamos hacer lo siguiente:
Código :
if (settings) { if (settings.borderColor) { //Aqui estamos seguro que hay un valor que leer } }
Y si quisieramos un valor por default podriamos hacer esto:
Código :
var boderColor = '#ffffff'; if (settings) { if (settings.borderColor) { borderClor = settings.borderColor; } }
Despues de esto podriamos usar el valor bordercolor, y si existe settings y la propiedad borderColor en settings obtendriamos ese valor, si no seria el de default '#FFFFFF', hasta ahora nada fuera de lo común. Pero como podriamos hacer esto en una sola linea de codigo?
Código :
var borderColor = (settings && settings.borderColor) || '#FFFFFF';
Asi de facil el && asegura que no se lea settings.borderColor a menos que exista settings. Evitando un bug posible si settings no existiera, y en caso que exista settings, pero no settings.borderColor entonces el || se asegura de usar '#FFFFFF', en caso que si exista se usa el primer valor del operador OR "||" es decir settings.borderColor.
Algo que tener en cuenta que si settings.borderColor fuese 0 se usaria '#FFFFFF', asi que hay que tener cuidado con su uso de este truco en circunstancias en que 0, false, o similares fuera un valor accpetable.