Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

600
Vistas
TypeError: console.log (...) no es una función

Estoy realmente confundido sobre cómo puedo obtener console.log no es una función en la línea 1091. Si elimino el cierre a continuación, la línea 1091 no se queja de dicho error. Versión de Chrome 43.0.2357.130 (64 bits).

ingrese la descripción de la imagen aquí

Aquí está el código:

 $scope.columnNameChanged = function (tableColumn) { setDirtyColumn(tableColumn); //propagate changes to the key fields for (var i = 0; i < $scope.tableIndexes.length; ++i) { for (var j = 0; j < $scope.tableIndexes[i].columnName.length; ++j) { if ($scope.tableIndexes[i].columnName[j] === tableColumn.previousName) { console.log('xxx', $scope.tableIndexes[i].columnName[j]) (function (i, j) { $timeout(function () { console.log($scope.tableIndexes[i].columnName[j]) $scope.tableIndexes[i].columnName[j] = tableColumn.name.toUpperCase(); console.log($scope.tableIndexes[i].columnName[j]) }); })(i, j); } } } };
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Solución

Simplemente coloque un punto y coma ( ; ) después de console.log( … ) .


Explicación

El error es fácilmente reproducible así:

 console.log() (function(){})

Está tratando de pasar function(){} como un argumento para el valor de retorno de console.log() que en sí mismo no es una función pero en realidad no está undefined (verifique typeof console.log(); ). Esto se debe a que JavaScript lo interpreta como console.log()(function(){}) . sin embargo, console.log es una función.

Si no tuviera el objeto de la console , vería

ReferenceError: la consola no está definida

Si tuviera el objeto de la console pero no el método log , vería

TypeError: console.log no es una función

Sin embargo, lo que tienes es

TypeError: console.log (...) no es una función

Tenga en cuenta el (...) después del nombre de la función. Con esos se refiere al valor de retorno de la función.

El salto de línea no separa estas dos expresiones como declaraciones separadas debido a las reglas de JavaScript para la inserción automática de punto y coma (ASI) .


Respetar el ;

Todos estos fragmentos de código dan como resultado todo tipo de errores inesperados si no hay punto y coma:

 console.log() // As covered before () // TypeError: console.log(...) is not a function
 console.log() // Accessing property 0 of property 1 of the return value… [1][0] // TypeError: console.log(...) is undefined
 console.log() // Like undefined-3 -3 // NaN
 let a, b; const array = Array.from({ length: 2 }) // Now, let's use destructuring: [a, b] = array; // ReferenceError: can't access lexical declaration 'array' before initialization
 let a, b; const array = Array.from({ length: 2 }).fill(1), array2 = Array.from({ length: 2 }) // Now, let's use destructuring. Attempt to get the two 1's from `array` as `a` and `b`: [a, b] = array; console.log(a, b); // undefined undefined

Otro ejemplo

Ves (...) a menudo con el uso de métodos encadenados o accesos de propiedad encadenados:

 string.match(/someRegEx/)[0]

Si no se encuentra ese RegEx, el método devolverá null y el descriptor de acceso de la propiedad en null provocará un TypeError: string.match(...) is null — the return value is null . En el caso de console.log(...) el valor devuelto no estaba undefined .

over 4 years ago · Santiago Trujillo Denunciar

0

El error significa que el valor de retorno de console.log() no es una función. Te falta un punto y coma:

 console.log('xxx', $scope.tableIndexes[i].columnName[j]); // ^

lo que hace que el siguiente (...) del IIFE se interprete como una llamada de función.


Compare los mensajes de error de

 > var foo = {bar: undefined}; > foo.bar(); Uncaught TypeError: foo.bar is not a function

y

 > var foo = {bar: function(){}}; > foo.bar()(); Uncaught TypeError: foo.bar(...) is not a function
over 4 years ago · Santiago Trujillo Denunciar

0

Actualización 2020

Una posible causa puede ser la declaración de la var console en algún lugar de su secuencia de comandos.

Usar:

 window.console.log(...);

en cambio. Trabajó para mi.

Espero que ayude

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda