How to Set Cookie in JavaScript
- Set Cookie in JavaScript
 - Set an Expiration Date for a Cookie
 - Set a Path for a Cookie
 - 
          
            the 
setCookie()Function 
A cookie is a piece of information that enables a connection between the client and server sides. The web browser stores it at the time of browsing.
Generally, a cookie contains data in the format of a name-value pair separated by semi-colons as a string. Also, a cookie maintains the user’s state and recollects the user’s information across all the web pages.
When considering JavaScript, a cookie can be created, read, updated, and deleted using the document.cookie property. A cookie comprises six segments: name, value, expires, path, domain, and security, as per the syntax below.
Syntax:
document.cookie = 'name=VALUE; expires=DATE; path=PATH; domain=DOMAIN; secure';
Here, the presence of the first segment: name=VALUE, is essential, and the other segments can be provided by the user if necessary, based on the requirement.
Set Cookie in JavaScript
document.cookie = 'new_cookie'
First, consider each segment in detail as a start-up with the above syntax.
- The 
document.cookiecommand creates a new cookie. - Here, the 
new_cookieis the string that sets the value of the cookie and has its syntax asname=VALUE, where thenameshould imply what the cookie should store in a readability format, andVALUEis simply the value given by the user as preferred. 
An example to set a cookie:
document.cookie = 'username=John Ricks';
Here the cookie is stored with username as the name and the value John Ricks.
Output:

Set an Expiration Date for a Cookie
A cookie automatically expires based on the user’s expiration date set on the code. If an expiration date is not set, the cookie will be removed when the browser is closed by the user, preventing the user from reusing the cookie values when visiting the web pages.
We can override this issue by setting an expiration date for the cookie simply by adding expires=DATE in UTC (Universal Time Coordinated), a time standard separated by a semi-colon, as in the below example.
document.cookie = 'username=John Ricks; expires=Wed, 31 Aug 2022 21:00:00 UTC';
Output:

Set a Path for a Cookie
With the path parameter, the user can tell the browser which path the cookie belongs to in the directory or web page. By default, the cookie belongs to the current page accessed by the user.
This path may be blank once we get the cookie from any directory or web page. This parameter modifies where the cookie is stored on the user’s machine and is beneficial when storing sensitive information, as it is hard to find.
We can add the path to a cookie, as in the below code.
document.cookie =
    'username=John Ricks; expires=Wed, 31 Aug 2022 21:00:00 UTC; path=/'
Output:

Also, depending on the necessity, a domain and security can be added when setting a cookie. The purpose of adding a domain is to allow cookies to other subdomains.
The secure part is a Boolean value where the default value is false, a blank field. If the cookie is marked secure, the value is true, so the cookie will be sent to a web server and may only be retrieved with a secure communication channel.
the setCookie() Function
We can set cookie values using a JavaScript function without hard-coding the cookie values, which can be of limited utility on most occasions. The below code defines the setCookie() function.
let username = 'John Ricks';
// To set a cookie
function setCookie(cookie_name, cookie_value, expire_date) {
  const c_d = new Date();  // current date
  c_d.setTime(c_d.getTime() + (expire_date * 24 * 60 * 60 * 1000));
  let expires = 'expires=' + c_d.toUTCString();
  document.cookie =
      cookie_name + '=' + cookie_value + '; ' + expires + '; path=/';
}
// to apply setCookie
setCookie('username', username, 20);
Output:

This function will create a cookie with the name username and the value of John Ricks and an expiration date of 20 days from when we generated it.
Similarly, we can use JavaScript functions to get a cookie by creating a getCookie() function, and cookies can also be updated or deleted if required.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.
