Code has been added to clipboard!

Learn JavaScript Cookies: What Are Cookies in JavaScript Explained

Reading time 4 min
Published Aug 8, 2017
Updated Oct 2, 2019

JavaScript cookies are data files that contain the information provided by users. These files are stored on users' computers. This tutorial explains how cookies are created and used to enhance websites.

You will learn how to write them in JavaScript from scratch, going through all of the necessary parameters. This tutorial also covers the ways to modify, update, and delete cookies. Furthermore, you will learn to make JavaScript set cookie.

JavaScript Cookies: Main Tips

  • When a user logs off of a website, the server forgets everything about the user. In order for it to remember user's information, cookies are used.
  • Cookies are small data files that are stored on your computer.
  • They are meant to store user information for a web page to use.

A Basic Example

What are cookies? It is data stored on the computer in name-value pairs.

See the example below. You can see exactly such pair that is used to contain the username a visitor of a webpage has entered when logging in:

Example
username=jogger66

Working with Cookies

Creating

In JavaScript, the document.cookie property might be used to create, delete and read cookies.

The example below displays the first step we need to take - creating a cookie:

Example
document.cookie = "name=jogger66";

By default, cookies are instantly deleted once you close the browser. However, a defined expiry date can be added to the cookies too:

Example
document.cookie = "name=jogger66; expires=Fri, 11 Dec 2019 14:00:00 UTC";

The path parameter specifies the path to which the cookie belongs. By default, the path is the current page:

Example
document.cookie = "name=jogger66; expires=Fri, 11 Dec 2019 14:00:00 UTC; path=/";

Reading

The example provided below shows how to read cookies in JavaScript:

Example
  var xyz = document.cookie;

Note: the method will return all the cookies in one string list (cookieOne=valueOne; cookieTwo=valueTwo...)

Changing

The process of changing cookies in JavaScript is the same as creating them. The old cookie's value is deleted by overwriting it:

Example
  document.cookie = "name=newJogger; expires=Thu, 22 Dec 2022 22:00:00 UTC; path=/";

Deleting

To delete a cookie, set its expiry date to a date in the past. As it has already passed, the system understand the cookie as no longer valid:

Example
  document.cookie = "name=newJogger; expires=Thu, 22 Dec 2022 22:00:00 UTC; path=/";

Note: it is always better to define the path when deleting a cookie to make sure you are removing the right one. Some browsers may not even allow deletion if the path is not set.

Setting

Now that you know what cookies are, the following paragraphs will explain how to set, get, and check user's cookies. This first example shows how JavaScript set cookie method works.

The function creates a cookie by adding together the cookie name (cookName), the cookie value (cookValue), and the expires string (expiry):

Example
function setCookie(cookName, cookValue, expiry) {
    var dt = new Date();
    dt.setTime(dt.getTime() + (expiry*24*60*60*1000));
    var expires = "expires="+ dt.toUTCString();
    document.cookie = cookName + "=" + cookValue + ";" + expiry + ";path=/";
}

Getting

Then, we create a function that returns the value of a specified cookie. It takes the cookie name as a parameter (cookName), splits each element of the document.cookie into an array (cookArray), then loops through all the elements and reads each value.

If a cookie is found c.indexOf(name) == 0, its value is returned, if not -- "" is returned:

Example
function getCookie(cookName) {
    var cname = cookName + "=";
    var deCookie = decodeURIComponent(document.cookie);
    var cookArray = decodedCookie.split(';');
    for(var i = 0; i < cookArray.length; i++) {
        var c = cookArray[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(cname) == 0) {
            return c.substring(cname.length, c.length);
        }
    }
    return "";
}

Checking

The last thing we will do is check the cookie.

If a function finds an existing cookie, it will display a greeting. If not, it will ask a user to enter his name. Then, it will save the new information and set a cookie:

Example
function checkCookie() {
    var firstname = getCookie("firstname");
    if (firstname != "") {
        alert("Welcome again " + firstname);
    } else {
        firstname = prompt("Enter name:", "");
        if (firstname != "" && firstname != null) {
            setCookie("firstname", firstname, 365);
        }
    }
}

We went through all the steps of handling a JavaScript cookie step by step. Did you get it all? Fantastic!

Now, let's see all the parts described above joined and displayed together. The result is a working cookie, ready to be used on a website:

Example
function setCookie(cookName, cookValue, expiry) {
 var dt = new Date();
 dt.setTime(dt.getTime() + (expiry*24*60*60*1000));
 var expires = "expires="+ dt.toUTCString();
 document.cookie = cookName + "=" + cookValue + ";" + expiry + ";path=/";
}

function getCookie(cookName) {
 var cname = cookName + "=";
 var deCookie = decodeURIComponent(document.cookie);
 var cookArray = decodedCookie.split(';');
 for(var i = 0; i < cookArray.length; i++) {
   var c = cookArray;
   while (c.charAt(0) == ' ') {
     c = c.substring(1);
   }
   if (c.indexOf(cname) == 0) {
     return c.substring(cname.length, c.length);
   }
 }
  return "";
}

function getCookie(cookName) {
 var cname = cookName + "=";
 var deCookie = decodeURIComponent(document.cookie);
 var cookArray = decodedCookie.split(';');
 for(var i = 0; i < cookArray.length; i++) {
   var c = cookArray;
   while (c.charAt(0) == ' ') {
     c = c.substring(1);
   }
   if (c.indexOf(cname) == 0) {
     return c.substring(cname.length, c.length);
   }
 }
   return "";
 }
}

JavaScript Cookies: Summary

  • You can use cookies to store user information.
  • You can use cookies for various purposes, such as greeting a user.
  • Cookies can have an expiration date, be reset and changed anytime.
What Is JavaScript Used For?
Tutorial
Introduction
Output
Syntax
Comment
Commands
Operators
Comparison and Logical Operators
Data Types
Math.random()
Type Conversion
Function Definitions
Events
Objects
Object Properties
Prototype
Array
Sorting Arrays
Strings
Numbers
Number Format
Math Object
Onclick Event
Date
Date Formats
Scope
Regular Expressions
Reserved Words
Common Mistakes
Performance
Forms
Form Validation
Window: The Browser Object Model
Popup Boxes
Cookies
JSON
AJAX Introduction
AJAX Form
Automatic File Download
Functions
Array Methods
String Methods
Date Methods
Timing Events
Cheat Sheet
JavaScript in HTML
HTML DOM Methods
HTML DOM Changing HTML
HTML DOM Animation
HTML DOM EventListener
HTML DOM Navigation
HTML DOM NodeList
HTML DOM Element Nodes
Array Functions
Boolean
Calling a Function
Date Functions
Global Objects
Input Text
Operator
Statements
String Functions
Math
Math.random
Number
RegEx
alert
array.filter
array.length
array.map
array.reduce
array.push
array.sort
break and continue
className
confirm
decodeURIComponent
for
forEach
if
indexOf
innerHTML
location.reload
number.toString
onclick
onload
parseInt
prompt
replace
setAttribute
setInterval
setTimeout
slice
splice
string.includes
string.indexOf
string.split
style.display
submit
substr
substring
switch
test
throw, try and catch
toLowerCase
toUpperCase
use strict
while
window.history
window.location
window.navigator
window.screen