Entiendo la diferencia entre ambos ( let bloquea la referencia dentro del bloque, mientras que var declara una variable accesible en todo el alcance).
Pero considerando el modelo basado en módulos singleton:
var singleton = null; module.exports = () => singleton ? singleton : singleton = newInstance(); ¿Debo declarar la variable singleton con let o var ? ¿Hay alguna diferencia, considerando las importaciones/exportaciones del módulo CommonJS?
No hay diferencia entre let o var, cuando hablamos de implementación singleton. Ya lo he comprobado en mi IDE. Teniendo en cuenta que usar "let" es una mejor práctica, le sugiero que use exactamente la palabra clave "let".
En caso de elegir entre 'var' o 'let', la mejor opción es 'let' porque una de las diferencias es que 'let' elimina el comportamiento propenso a errores con elevación variable, puede leer esto para conocer las especificaciones: https:// developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let . Pero debe considerar usar solo const como sus variables predeterminadas porque la mayoría de los errores implican cambios de estado inesperados, todo lo que pueda usar para garantizar los valores y estados de las variables debe usarse para evitar este tipo de problemas de comunicación.
¿Ya has considerado usar const en su lugar?
Siempre he usado const y nunca tuve un problema, porque nunca volverás a evaluar todo el objeto.