Rolf B: Eigenartiges Verhalten von Date

Beitrag lesen

Hallo Gunnar,

in einem String kann es all das sein, was man hineindeuten möchte. Egal in welcher Sprache der String verarbeitet wird.

In JavaScript ist es aber weder noch. Es sind zwei Zahlen, verknüpft mit dem Komma-Operator, dem letzten Hund im Operatorenrudel. Das ist keine Auflistung, das würde das Entstehen einer Liste suggerieren. Sondern (und das schreibe ich jetzt nicht mehr für Dich, Du wirst das wissen):

$$a, b \longrightarrow b$$

Dieser Kamerad ist so zurückhaltend, dass er an diversen Stellen von anderer Syntax überbrüllt wird.

Dies sind keine Kommaoperatoren. Der letzte ist sogar ein Syntaxerror

  • function foo(a, b, c) {...} - Parameter
  • let m = Math.min(a, b); - Argumente
  • let arr = [ 1, 2, 3, 4 ]; - Arrayliteral
  • let obj = { x: 2, y: 3 }; - Objektliteral
  • let x = 1,2; - Deklaration

Aber:

let x = (1,2);
console.log(x);

liefert 2.

Das Komma ist das Lieblingstier im Zoo der Minifizierer.

if (a < 4) {
   foo(7);
   b = 9;
   doSomething(a, b);
}
else
{
   bar(99);
   b = 88;
}

// versus

a<4?(foo(7),b=9,doSomething(a,b)):(bar(99),b=88);

Die Klammern sind leider trotzdem nötig, weil der Rang von , geringer ist als der von ?:

Rolf

--
sumpsi - posui - obstruxi