Javascript “tuple” notation: quel est son intérêt?

À wtfjs, j'ai trouvé que celui-ci est légal javascript.

",,," == Array((null,'cool',false,NaN,4)); //true

L'argument (null,'cool',false,NaN,4) ressemble à un n-uplet pour moi, mais le javascript n'ont pas de tuples!

Quelques tests rapides dans ma console javascript rendements suivants.

var t = (null,'cool',false,NaN,4); //t = 4
(null,'cool',false,NaN,4) === 4; //true
(alert('hello'), 42); //shows the alert and returns 42

Il semble se comporter exactement comme un point-virgule ; liste séparée par des états, il suffit de retourner la valeur de la dernière déclaration.

Est-il une référence quelque part qui décrit cette syntaxe et sa sémantique? Pourquoi existe-t-elle, c'est à dire quand doit-il être utilisé?

  • C'est l'opérateur virgule: javascriptweblog.wordpress.com/2011/04/04/...
  • L'opérateur virgule peut aussi être (ab)utilisé pour exécuter une série de fonctions à l'intérieur d'un ternaire de la branche, comme il sera de retour le résultat de la dernière instruction de toute façon: var a = isTrue ? (b=f(c), g(b)) : (b=g(c), f(b)). Rarement sage, mais parfois utile, si très concis code est préféré plus de lisibilité, ou rapide à des fins de débogage.
  • Ceci est appelé "l'expression" en JavaScript, ce n'est pas simplement un effet de l'opérateur virgule s'il joue une petite partie; Cette expression est résolu à cause de l'opérateur virgule. Vous pouvez définir une valeur pour toute mutable variable de l'expression évaluée. Même si l'expression n'est pas définie.
InformationsquelleAutor Grilse | 2012-01-26