JavaScript | Errores comunes

JavaScript es un lenguaje fácil para comenzar, pero dominarlo requiere mucho esfuerzo, tiempo y paciencia. Los principiantes a menudo cometen algunos errores bien conocidos que vuelven y los muerden. En este artículo, cubriremos algunos de los errores de aprendizaje más comunes que cometen las personas y descubriremos cómo superarlos. Muchos de estos consejos serán aplicables fuera de JavaScript o incluso del desarrollo web.

Sensibilidad de mayúsculas y minúsculas

Los nombres de variables y funciones distinguen entre mayúsculas y minúsculas. Y recuerde que la función javascript nativa y las propiedades CSS en javascript son camelCase.

Ejemplo:

// it should be 'Id' not 'ID'
getElementById('geeksforgeeks') != getElementByID('geeksforgeeks'); 
  
// 'geeksforgeeks' again does not equal 'GeeksForGeeks'
getElementById('geeksforgeeks') != getElementById('GeeksForGeeks');

Uso incorrecto del operador de comparación de declaraciones ‘IF’

Estamos hablando del operador “==” y el operador “=”. El primero hace una comparación y el segundo asigna un valor a una variable. El error creado depende del idioma. Algunos idiomas arrojarán un error, pero JavaScript realmente evaluará la declaración y devolverá verdadero o falso.

Ejemplo:

// This if statement returns false (as expected) because x is not equal to 5:
var x = 0;
if (x == 5);
  
// This if statement returns true (not expected) and Assigns 5 to x:
var x = 0;
if (x = 5);

Javascript se escribe libremente, excepto en las declaraciones de cambio. JavaScript NO se escribe libremente cuando se trata de comparaciones de casos.
Ejemplo:

var myVar = 5;
if(myVar == '5'){ 
  // returns true since Javascript is loosely typed
  alert('Welcome to GeeksforGeeks'); 
}
  
switch(myVar){
  case '5':
  // this alert will not show since the data types don't match
  alert('Welcome to GeeksforGeeks'); 
}

Olvidar usar ‘esto’

Otro error común es olvidarse de usar ‘esto’. Las funciones definidas en un objeto de JavaScript acceden a las propiedades de ese objeto de JavaScript y no pueden usar el identificador de referencia ‘this’.
Ejemplo:

// the following is incorrect:
  
function myFunction() {
  var myObject = {
     objProperty: "GeeksforGeeks welcomes you",
     objMethod: function() {
        alert(objProperty);
        }
     };
  myObject.objMethod();
} 
myFunction();
  
// the following is correct:
  
function myFunction() {
  var myObject = {
     objProperty: "GeeksforGeeks welcomes you",
     objMethod: function() {
        alert(this.objProperty);
        }
     };
  myObject.objMethod();
} 
myFunction();

Indefinido != nulo

En JavaScript, indefinido significa que se ha declarado una variable pero aún no se le ha asignado un valor, nulo es un valor de asignación. Se puede asignar a una variable como una representación sin valor.
Ejemplo:

// undefined
let TestVar;
console.log(TestVar); // shows undefined
console.log(typeof TestVar); // shows undefined
  
// null
let TestVar = null;
console.log(TestVar); // shows null
console.log(typeof TestVar); // shows object
  
// it is clear that undefined and null are two distinct types:
// undefined is a type itself (undefined) while null is an object.
  
null === undefined // false
null == undefined // true
null === null // true

Adición y concatenación confusas

Una adición se trata de agregar números y la concatenación se trata de agregar strings. En JavaScript, ambas operaciones usan el mismo operador ‘+’. Debido a esto, agregar un número como un número producirá un resultado diferente de agregar un número como una string y muchos principiantes tienen confusión al respecto.

Ejemplo:

// the result in x is 30
var x = 5 + 25;  
  
// the result in x is '525'
var x = 5 + '25';  

No entender cómo funcionan los alcances :

Un concepto difícil de entender para los principiantes son las reglas de alcance y los cierres de JavaScript. Las funciones conservan la visibilidad de las variables en sus ámbitos principales. Pero debido a que estamos retrasando la ejecución con un setTimeout, cuando llega el momento de que las funciones se ejecuten, el ciclo ya ha terminado y la variable I se incrementa a 6.

La función autoejecutable en el comentario funciona porque copia la variable I por valor y mantiene una copia privada para cada función de tiempo de espera.

Ejemplo:

// Output will be 6
for(var i = 0; i < 5; i++){
    setTimeout(function(){
        console.log(i+1);
    }, 100*i);
}

Conclusión

Cuanto mejor comprenda por qué y cómo JavaScript funciona y no funciona, más sólido será su código y más podrá aprovechar de manera efectiva el verdadero poder del lenguaje y mejorar. Por el contrario, la falta de una comprensión adecuada de los paradigmas y conceptos de JavaScript es, de hecho, donde se encuentran muchos problemas de JavaScript.

Publicación traducida automáticamente

Artículo escrito por AnkitMishra16 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *