2

En el código siguiente:

function prueba() {
    console.log("Esto es una función");
}

var prueba = "Esto es una variable";

prueba();

Obtengo el error:

prueba.js:46 Uncaught TypeError: prueba is not a function

No entiendo por qué la variable y la función no pueden tener el mismo nombre. Son dos cosas diferentes. Gracias.

Euriloco
  • 391
  • 1
  • 5
  • 9
    Estás reasignando el puntero `prueba` de una función a un *string* y no se permiten referencias duplicadas por ambigüedad. Y esto se debe principalmente a que las funciones en Javascript son variables, también. – VRoxa May 18 '20 at 15:34
  • Ya lo entendí. Muchas gracias. – Euriloco May 18 '20 at 15:56
  • Usa el identificador `let` en tu varibale y te notificará que no puedes usar dicho identificado por que ya ha sido declarado mas o menos así: **`"SyntaxError: Identifier 'prueba' has already been declared `**, entonces no puedes compartir el mismo nombre para la variable y tu función – BetaM May 18 '20 at 15:59
  • [esta respuesta](https://es.stackoverflow.com/a/290555/28035) te aclarara basicamente estas diciendo var prueba = ()=>... y luego var prueba = 2; es decir estas sobreescribiendo la variable prueba – JackNavaRow May 18 '20 at 16:40
  • por cierto lo que dice @VRoxa tiene razon tu funcion la escribe el interprete algo aso ´var prueba = function(){}´ – JackNavaRow May 18 '20 at 16:42

0 Answers0