DEV Community

Cover image for Common Errors in JavaScript
Luckey
Luckey

Posted on

Common Errors in JavaScript

As a JavaScript developer, you'll inevitably encounter errors in your code. Knowing how to troubleshoot and fix these errors is an important part of the development process. In this article, we'll go over some of the most common errors you might encounter in JavaScript, along with code examples and solutions to help you fix them.


SyntaxError

A SyntaxError with the message "unexpected token" usually means that the JavaScript engine encountered a character it was not expecting. This can happen when you forget to close a string, or when you have an extra comma in an array or object literal.

Here's an example of a SyntaxError caused by an unclosed string:

let str = 'Hello, world!
console.log(str);
Enter fullscreen mode Exit fullscreen mode

To fix this error, make sure to close the string with a matching single or double quote:

let str = 'Hello, world!';
console.log(str);
Enter fullscreen mode Exit fullscreen mode

Here's an example of a SyntaxError caused by an extra comma in an array literal:

let arr = [1, 2, 3,];
console.log(arr);

Enter fullscreen mode Exit fullscreen mode

To fix this error, remove the extra comma after the last element in the array:

let arr = [1, 2, 3];
console.log(arr);

Enter fullscreen mode Exit fullscreen mode

ReferenceError

A ReferenceError with the message "cannot access 'x' before initialization" occurs when you try to access a variable that has not yet been declared. This can happen when you forget to use the let or const keyword when declaring a variable, or when you try to access a variable that is out of scope.

Here's an example of a ReferenceError caused by forgetting to use the let keyword:

x = 10;
console.log(x);

Enter fullscreen mode Exit fullscreen mode

To fix this error, make sure to use the let keyword when declaring the variable:

let x = 10;
console.log(x);

Enter fullscreen mode Exit fullscreen mode

Here's an example of a ReferenceError caused by accessing a variable out of scope:

if (true) {
  let x = 10;
}
console.log(x);

Enter fullscreen mode Exit fullscreen mode

To fix this error, make sure to only access variables within their defined scope. In this case, you can move the console.log statement inside the if block:

if (true) {
  let x = 10;
  console.log(x);
}

Enter fullscreen mode Exit fullscreen mode

TypeError

A TypeError with the message "cannot read property 'x' of undefined" occurs when you try to access a property of an object that is undefined. This can happen when you forget to check if an object is null or undefined before trying to access its properties.

Here's an example of a TypeError caused by trying to access a property of an undefined object:

let obj;
console.log(obj.x);

Enter fullscreen mode Exit fullscreen mode

To fix this error, make sure to check if the object is null or undefined before trying to access its properties:

let obj;
if (obj !== null && typeof obj === 'object') {
  console.log(obj.x);
}
Enter fullscreen mode Exit fullscreen mode

Here's an example of a TypeError caused by forgetting to add the () after a function name:

const greet = () => {
  console.log('Hello, world!');
}
greet;

Enter fullscreen mode Exit fullscreen mode

To fix this error, make sure to add the () after the function name to call the function:

function greet() {
  console.log('Hello, world!');
}
greet();

Enter fullscreen mode Exit fullscreen mode

Here's an example of a TypeError caused by trying to call a property of an object that is not a function:

let obj = {
  x: 10
};
obj.x();

Enter fullscreen mode Exit fullscreen mode

To fix this error, make sure to only call functions using the () notation. In this case, you can either remove the () or access the x property using the square bracket notation (e.g. obj['x']).


Conclusion

In conclusion, encountering errors in your JavaScript code is a normal part of the development process. Knowing how to troubleshoot and fix these errors is an important skill to have as a JavaScript developer.

Latest comments (0)