¿Qué está pasando en este código Javascript? ¿Hay un nombre para esto o algún lugar para aprender más sobre el comportamiento específico ilustrado?
No pensé que codificar una "tupla" en JS sería una sintaxis válida, pero parece serlo. Sin embargo, la variable resultante definitivamente no se comporta como una tupla, lo que se esperaba dada la falta de soporte de JS para ellos.
Sin embargo, su comportamiento me parece muy extraño.
Solo obtiene 1 de los dos valores almacenados en él, y extrañamente, eliminar el paréntesis sigue siendo javascript válido, pero termina almacenando el valor opuesto en la variable
-> x = (90, 27);
<- 27
-> x
<- 27
-> x = 90, 27;
<- 27
-> x
<- 90
El operador de coma devuelve el último elemento
No hay tuplas en JavaScript
Es solo una expresión de evaluación de javascript, cuando tiene paréntesis (), javascript evaluará primero la expresión completa dentro del paréntesis y luego la asignará a la variable ya que x = (1,2) 2 es el último valor evaluado que se asignará a x. Pero si no tiene paréntesis, evalúa paso a paso la expresión x = 1,2, la primera expresión que encuentra es x=1 y luego solo evalúa 2, es como si hubiera escrito x=1; 2;
Eso no es una tupla. JavaScript no tiene tuplas. simplemente estás haciendo
x = 90, 27
pero envolviendo la expresión 90, 27 entre paréntesis.
La razón por la que devuelve 27 es porque ese es el último elemento.