JavaScript Window atob() is a global method “used to decode a string of data encoded using Base64 encoding.” You can use the btoa() method to encode and transmit data that may otherwise cause communication problems, then transmit it and use the atob() method to decode it again.
Syntax
atob(encodedData)
Parameters
encodedData: It is a binary string (i.e., a string in which each character is treated as a byte of binary data) containing base64-encoded data.
Return value
It is an ASCII string containing decoded data from encodedData.
Exceptions
InvalidCharacterError DOMException: Thrown if encodedData is not valid base64.
Example 1: Basic Decoding
In this example, we’ll simply decode a base-64 encoded string to get its original value.
// Base-64 encoded string
let encodedString = "SGVsbG8gV29ybGQh";
// Decoding the string
let decodedString = atob(encodedString);
console.log(decodedString);
Output
Hello World!
Example 2: Decoding User Input
In this example, we’ll decode a base-64 encoded string from the user.
// Taking encoded string as input from the user
let encodedUserInput = prompt("Enter a base-64 encoded string:");
// Decoding the string
let decodedUserInput = atob(encodedUserInput);
alert("Decoded String: " + decodedUserInput);
Output
If you input SGVsbG8gV29ybGQh (which is “Hello World!” in base-64), the alert will display “Decoded String: Hello World!”.
If you input a string that’s not valid base-64, you might get unexpected results or errors.
Example 3: Using atob() in HTML
In this example, we will decode a base-64 encoded string and display it in an HTML element.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>atob() Example</title>
</head>
<body>
<button onclick="decodeString()">Decode</button>
<p id="decodedOutput"></p>
<script>
function decodeString() {
let encodedString = "U29tZSBiYXNlLTY0IGVuY29kZWQgc3RyaW5n";
let decodedString = atob(encodedString);
document.getElementById("decodedOutput").innerText = decodedString;
}
</script>
</body>
</html>
Output
Browser Support
Chrome | IE | Edge | Firefox | Safari | Opera |
Yes | 10-11 | Yes | Yes | Yes | Yes |
That’s it!

Krunal Lathiya is a seasoned Computer Science expert with over eight years in the tech industry. He boasts deep knowledge in Data Science and Machine Learning. Versed in Python, JavaScript, PHP, R, and Golang. Skilled in frameworks like Angular and React and platforms such as Node.js. His expertise spans both front-end and back-end development. His proficiency in the Python language stands as a testament to his versatility and commitment to the craft.