Cosa fa una virgola nelle espressioni JavaScript?

Se io uso:

1.09 * 1; // returns "1.09" 

Ma se io uso:

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

So che 1,09 non è un numero.

Cosa fa la virgola nell’ultimo pezzo di codice?

Altri esempi

 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 

L’operatore virgola valuta entrambi i suoi operandi (da sinistra a destra) e restituisce il valore del secondo operando.

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

Ad esempio, l’espressione 1,2,3,4,5 5 . Ovviamente l’operatore virgola è utile solo per le operazioni con effetti collaterali.

Altri avvisi da considerare:

 alert((0, 9)); alert((9, 0)); alert(("foo", "bar")); 

Inoltre, dai un’occhiata alla console di Firebug se vuoi provare questo in modo interattivo.

Dai un’occhiata qui – la virgola sta per più espressioni / affermazioni. Ad esempio nel tuo codice potresti usare una riga come questa:

 var a=0, b=0, c=0; 

Questo dichiarerebbe tutte e tre le variabili senza scrivere:

 var a=0; var b=0; var c=0; 

Spero possa aiutare.

L’operatore virgola valuta entrambi i suoi operandi (da sinistra a destra) e restituisce il valore del second operando.

https://stackoverflow.com/a/3561056/5934465

Dovrebbe essere così!

L’operatore virgola valuta ciascuno dei suoi operandi (da sinistra a destra) e restituisce il valore last operando.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator

Aggiungere / modificare proprietà a un object e restituirlo nella stessa riga è un ansible caso d’uso:

 console.log( ((x) => (o = {biggerCond: r => r >= x}, o.r5 = Array.from(window.crypto.getRandomValues(new Uint16Array(5))), o.isAnyBigger = o.r5.some(o.biggerCond), o.bigger = o.isAnyBigger ? o.r5.filter(o.biggerCond) : [x], o ) )(5e4) ); // Example // { // bigger: [58414, 56500, 63397], // isAnyBigger: true, // isBiggerCond: r => r >= x, // r5: [58414, 12015, 56500, 63397, 43861] // }