Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/08/2013, 20:27
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Reduccion de codigo, increiblemente rara

buenas...
primero vamos a desglozar el código compactado.

Código:
function k(q){""==q&&(q=" :P ");"console"in self&&"log"in console&&console.log(" \u00b7 "+q)}

// la funcion anterior es la misma que la siguiente ;

function k(q){
	""==q&&(q=" :P "); // primer if del original ;
	"console"in self&&"log"in console&&console.log(" \u00b7 "+q) // segundo if del original ;
}
segundo, hacer una aclaración sobre los whitespace en javascript —sin tomar en cuenta los strings. javascript no muestra tanta atención a los espacios en blancos, lo que le permite al programador escribir el código a su gusto. salvo en ciertas circunstancias, el espacio en blanco es necesario para separar algunos token del lenguaje. particularmente, son necesarios para separar los identificaores del resto de la expresiones. es por ello que en la expresión ""==q&&(q=" :P ") está todo junto. básicamente se puede descomponer de esta forma "" == q && (q = " :P "). como ves, q&& no es nada especial. ahí tienes una variable seguido del operador AND ( && ).

y tercero, sobre no utilizar IF. expr && expr es como un shorthand de un IF. en javascript, los operadores lógicos evalúan una u otra expresión según el resultado de los operandos. en el caso de AND, si el primer operando evalúa a FALSE, entonces el segundo operando no se evalúa. precisamente de ese detalle es que sale el shorthand de IF. en esencia, el primer operando es la condición del IF y el segundo operando es el cuerpo del IF.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.