JavaScript Cookies
Store and retrieve user data in the browser
🍪 What are Cookies?
Cookies are small pieces of data stored in the user's browser. They help websites remember information about users between visits.
// Set a cookie
document.cookie = "username=John";
// Get all cookies
console.log(document.cookie);
// Set cookie with expiration
document.cookie = "theme=dark; expires=Thu, 18 Dec 2024 12:00:00 UTC";
Output:
username=John; theme=dark
Cookie Operations
Create
Set new cookies
document.cookie = "name=value"
Read
Get cookie values
document.cookie
Update
Change cookie values
document.cookie = "name=newValue"
Delete
Remove cookies
expires=Thu, 01 Jan 1970
🔹 Creating Cookies
Set cookies with different options:
// Simple cookie
document.cookie = "username=John";
// Cookie with expiration date
let expires = new Date();
expires.setTime(expires.getTime() + (7 * 24 * 60 * 60 * 1000)); // 7 days
document.cookie = "theme=dark; expires=" + expires.toUTCString();
// Cookie with path and domain
document.cookie = "language=en; path=/; domain=.example.com";
// Secure cookie (HTTPS only)
document.cookie = "sessionId=abc123; secure; httpOnly";
// Cookie with all options
document.cookie = "userPrefs=settings; expires=" + expires.toUTCString() + "; path=/; secure";
Output:
Cookies are set in the browser
🔹 Reading Cookies
Get cookie values from the browser:
// Get all cookies
console.log(document.cookie);
// Function to get specific cookie
function getCookie(name) {
let nameEQ = name + "=";
let cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
let cookie = cookies[i];
while (cookie.charAt(0) === ' ') {
cookie = cookie.substring(1, cookie.length);
}
if (cookie.indexOf(nameEQ) === 0) {
return cookie.substring(nameEQ.length, cookie.length);
}
}
return null;
}
// Usage
let username = getCookie("username");
console.log("Username: " + username);
let theme = getCookie("theme");
console.log("Theme: " + theme);
Output:
username=John; theme=dark; language=en
Username: John
Theme: dark
🔹 Updating and Deleting Cookies
Modify or remove existing cookies:
// Update cookie (just set it again)
document.cookie = "username=Jane";
console.log("Updated username: " + getCookie("username"));
// Delete cookie (set expiration to past date)
function deleteCookie(name) {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
}
// Delete specific cookies
deleteCookie("username");
deleteCookie("theme");
console.log("After deletion: " + document.cookie);
// Check if cookie exists
function cookieExists(name) {
return getCookie(name) !== null;
}
console.log("Username exists: " + cookieExists("username"));
console.log("Language exists: " + cookieExists("language"));
Output:
Updated username: Jane
After deletion: language=en
Username exists: false
Language exists: true
🔹 Practical Cookie Manager
Complete cookie management system:
// Cookie Manager Object
const CookieManager = {
// Set cookie with options
set: function(name, value, days = 7, path = "/") {
let expires = "";
if (days) {
let date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + value + expires + "; path=" + path;
},
// Get cookie value
get: function(name) {
let nameEQ = name + "=";
let cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
let cookie = cookies[i].trim();
if (cookie.indexOf(nameEQ) === 0) {
return cookie.substring(nameEQ.length);
}
}
return null;
},
// Delete cookie
delete: function(name, path = "/") {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=" + path;
},
// Get all cookies as object
getAll: function() {
let cookies = {};
let cookieArray = document.cookie.split(';');
for (let cookie of cookieArray) {
let [name, value] = cookie.trim().split('=');
if (name && value) {
cookies[name] = value;
}
}
return cookies;
}
};
// Usage examples
CookieManager.set("user", "John", 30);
CookieManager.set("preferences", "dark-theme", 365);
console.log("User: " + CookieManager.get("user"));
console.log("All cookies:", CookieManager.getAll());
CookieManager.delete("user");
console.log("After deletion: " + CookieManager.get("user"));
Output:
User: John
All cookies: {user: "John", preferences: "dark-theme"}
After deletion: null