¿Qué hace el operador de coma en JavaScript?

Resuelto Topera asked hace 14 años • 5 respuestas

Si uso:

1.09 * 1; // returns "1.09"

Pero si uso:

1,09 * 1; // returns "9"

Sé que 1,09 no es un número.

¿Qué hace la coma en el último fragmento de código?

Más ejemplos

if (0,9) alert("ok"); // alert
if (9,0) alert("ok"); // don't alert

alert(1); alert(2); alert(3); // 3 alerts
alert(1), alert(2), alert(3); // 3 alerts too

alert("2",
    foo = function (param) {
        alert(param)
    },
    foo('1')
)
foo('3'); // alerts 1, 2 and 3
Topera avatar Aug 25 '10 04:08 Topera
Aceptado

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

Fuente: https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special_Operators/Comma_Operator

Por ejemplo, la expresión 1,2,3,4,5se evalúa como 5. Obviamente, el operador de coma sólo es útil para operaciones con efectos secundarios.

console.log(1,2,3,4,5);
console.log((1,2,3,4,5));
Expandir fragmento

Yuval Adam avatar Aug 24 '2010 21:08 Yuval Adam

Algunos más a considerar:

console.log((0, 9));
console.log((9, 0));
console.log(("foo", "bar"));
Expandir fragmento

Douglas avatar Aug 24 '2010 22:08 Douglas

La sintaxis específica permite a una panadería hornear pan funcionalmente, entregárselo al cliente para su consumo y también mantener el número de returns en cero. Todo esto mediante el uso de funciones de flecha entre paréntesis.

(new Array(3)).fill()
.map(()=>({state:"dough", bake(){this.state="baked"}, consume(){this.state="consumed"}}))

.map(bread=>(console.log(`Adding ${bread.state} to oven.`), bread.bake(), bread))
.map(bread=>(console.log(`Consuming ${bread.state} bread.`), bread.consume(), bread))
.map(bread=>console.log(`Bread is now ${bread.state}.`))
Adding dough to oven.
Adding dough to oven.
Adding dough to oven.
Consuming baked bread.
Consuming baked bread.
Consuming baked bread.
Bread is now consumed.
Bread is now consumed.
Bread is now consumed.
Marinos An avatar Apr 21 '2021 15:04 Marinos An