w3schools w3s attribute javascript

w3s - Sintaxis javascript inusual



id='' contact html (4)

Dado que el operador de coma en javascript evalúa múltiples operandos y devuelve el último. MDN:

El operador de coma evalúa sus dos operandos (de izquierda a derecha) y devuelve el valor del segundo operando.

Tu expresión (0,foo)

devuelve foo que luego es invocado por el paranthesis, puesto después.

¿Podría alguien explicarme qué está pasando aquí en la segunda línea? :

var foo = function(){alert("hello?")}; (0,foo)();



La coma evaluará los operandos y devolverá el último.

la segunda línea volverá foo


La expresión de coma infame a,b evalúa ambos argumentos y devuelve el valor de la expresión de la mano derecha.

Por lo tanto, en este caso es exactamente lo mismo que foo(); .

Aquí hay un ejemplo mejor que te ayudará a entender lo que está pasando:

function foo() { print("foo called"); return 123; } function bar() { print("bar called"); return 456; } var result = (foo(), bar()); print("result:", result);

Salida:

foo called bar called result: 456

También la expresión de coma se puede confundir con los argumentos de la función delimitadora de coma. ¡No es el mísmo! Note la diferencia:

print("result:", foo(), bar() ); // 3 arguments, no comma operator print("result:", (foo(), bar()) ); // 2 arguments, comma operator