¿Qué hace el operador de coma en JavaScript?
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
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,5
se 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
Algunos más a considerar:
console.log((0, 9));
console.log((9, 0));
console.log(("foo", "bar"));
Expandir fragmento
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 return
s 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.