SyntaxError: Unexpected token in JavaScript

December 8, 2022

SyntaxError: Unexpected token in JavaScript

This guide is part of the “Common JavaScript Errors” series. It’s focused entirely on providing quick and easy solutions for JavaScript-related problems.


The "SyntaxError: Unexpected token" error in JavaScript is a common syntax error that occurs when the JavaScript interpreter encounters a token (i.e. a piece of code) that it was not expecting. This can happen for a variety of reasons, such as:

  • A missing or extra comma in an array or object literal
  • A missing or extra closing parenthesis in a function call or expression
  • A missing or extra closing bracket in an array or object literal
  • An unclosed string literal
  • An unrecognized keyword or identifier
  • Unclosed tags in HTML documents. E.g. The <script> tag

Here are some examples of code that could cause the error:

// Missing comma in array literal
const arr = [1, 2 3];

// Extra closing parenthesis in function call
myFunction(1, 2);)

// Unclosed string literal
const str = 'Hello, world;

// Unrecognized keyword
const foo = true;
bar = false;

In these examples, the JavaScript interpreter encounters tokens that it was not expecting (e.g. the extra closing parenthesis in the second example), and it throws a "SyntaxError: Unexpected token" error.

To fix this error, you must carefully review your code and identify the unexpected token causing the error. Once you have found the unexpected token, you can correct it by removing it, adding the missing token that it was supposed to be paired with, or fixing the syntax error that caused the unexpected token to appear.

Is it possible to automate syntax checking?

There are a few ways to check for syntax errors automatically, these include:

  • Using a linter: A linter is a tool that automatically checks your JavaScript code for syntax errors and other issues. Linters can be configured to check for a wide range of coding styles and syntax errors, and they can help you identify and fix errors in your code before you run it. Some popular linters for JavaScript include ESLint, JSLint, and JSHint.
  • Using a transpiler: A transpiler is a tool that automatically converts your JavaScript code from one version of the language to another. For example, you can use a transpiler to convert your code from the latest version of JavaScript (ES6) to an older version (e.g. ES5) that is supported by older browsers. Transpilers can also help you identify and fix syntax errors in your code, as they will not be able to transpile code that contains syntax errors. Some popular transpilers for JavaScript include Babel and TypeScript.
  • Using an integrated development environment (IDE): An IDE is a software application that provides a comprehensive set of tools and features for writing and debugging code. Many IDEs include linting and transpiling capabilities and other features that can help you identify and fix syntax errors in your JavaScript code. Some popular IDEs for JavaScript include Visual Studio Code and WebStorm.