<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: balaji s</title>
    <description>The latest articles on DEV Community by balaji s (@rsbalaji).</description>
    <link>https://dev.to/rsbalaji</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4017638%2Fe92be38e-0ada-4b81-89d0-62ea3e272a31.png</url>
      <title>DEV Community: balaji s</title>
      <link>https://dev.to/rsbalaji</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rsbalaji"/>
    <language>en</language>
    <item>
      <title>Understanding LocalStorage vs sessionStorage in Web Development</title>
      <dc:creator>balaji s</dc:creator>
      <pubDate>Sat, 26 Sep 2026 07:59:37 +0000</pubDate>
      <link>https://dev.to/rsbalaji/understanding-localstorage-vs-sessionstorage-in-web-development-50gd</link>
      <guid>https://dev.to/rsbalaji/understanding-localstorage-vs-sessionstorage-in-web-development-50gd</guid>
      <description>&lt;h2&gt;
  
  
  A Complete Guide to Saving and retriving Data in the Browser using Web Storage API
&lt;/h2&gt;

&lt;p&gt;When building websites, web developers often need a way to store data right inside the user's browser. Before modern HTML5, this meant relying heavily on cookies. Today, we have two much better, cleaner options: &lt;strong&gt;LocalStorage&lt;/strong&gt; and &lt;strong&gt;sessionStorage&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Both belong to the &lt;strong&gt;Web Storage API&lt;/strong&gt; and let you save key-value pairs. But how do you know when to use which? Let's dive in from the basics to advanced concepts with clear, simple examples!&lt;/p&gt;




&lt;h3&gt;
  
  
  The Basics (What Are They?)
&lt;/h3&gt;

&lt;p&gt;Think of both &lt;code&gt;localStorage&lt;/code&gt; and &lt;code&gt;sessionStorage&lt;/code&gt; as mini-databases inside your web browser. They both use the exact same methods to save, read, and delete data.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LocalStorage:&lt;/strong&gt; Data stored here &lt;strong&gt;never expires&lt;/strong&gt;. Even if you close the browser tab, restart your computer, or come back a week later, the data will still be there until you manually delete it via code or clear your browser history.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;sessionStorage:&lt;/strong&gt; Data stored here lasts &lt;strong&gt;only as long as the browser tab is open&lt;/strong&gt;. The moment you close that specific tab or window, the data is wiped out instantly.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  How to Use Them
&lt;/h3&gt;

&lt;p&gt;The syntax for both is identical. Just swap out &lt;code&gt;localStorage&lt;/code&gt; for &lt;code&gt;sessionStorage&lt;/code&gt; depending on your needs.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Saving Data (&lt;code&gt;setItem&lt;/code&gt;)
&lt;/h4&gt;

&lt;p&gt;To save data, use &lt;code&gt;.setItem('key', 'value')&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Save user settings in LocalStorage (stays forever)&lt;/span&gt;
&lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;theme&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;dark&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Save a temporary form step in sessionStorage (disappears when tab closes)&lt;/span&gt;
&lt;span class="nx"&gt;sessionStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;currentStep&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Reading Data (&lt;code&gt;getItem&lt;/code&gt;)
&lt;/h4&gt;

&lt;p&gt;To retrieve what you saved, use &lt;code&gt;.getItem('key')&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Get the saved theme&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;userTheme&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;theme&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;userTheme&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Output: "dark"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Removing Data (&lt;code&gt;removeItem&lt;/code&gt;)
&lt;/h4&gt;

&lt;p&gt;To delete a specific piece of data:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;removeItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;theme&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  4. Clearing Everything (&lt;code&gt;clear&lt;/code&gt;)
&lt;/h4&gt;

&lt;p&gt;To wipe out &lt;em&gt;all&lt;/em&gt; data stored for your website:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Clears everything in sessionStorage for this site&lt;/span&gt;
&lt;span class="nx"&gt;sessionStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;clear&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Advanced Concepts
&lt;/h3&gt;

&lt;p&gt;Now that you know the basics, let's look at how professionals handle real-world data structures, security, and storage limits.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Storing Objects and Arrays (JSON)
&lt;/h4&gt;

&lt;p&gt;Web storage can &lt;strong&gt;only save strings&lt;/strong&gt;. If you try to save a JavaScript object or array directly, it will save as the text &lt;code&gt;"[object Object]"&lt;/code&gt;, which is useless.&lt;/p&gt;

&lt;p&gt;To fix this, use &lt;code&gt;JSON.stringify()&lt;/code&gt; when saving and &lt;code&gt;JSON.parse()&lt;/code&gt; when reading.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// The Object we want to save&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Aarav&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;isLoggedIn&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// 1.Save as a JSON string&lt;/span&gt;
&lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;userData&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

&lt;span class="c1"&gt;// 2.Retrieve and convert back to an Object&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;savedUser&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;userData&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;savedUser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Output: Aarav&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Listening for Changes (&lt;code&gt;storage&lt;/code&gt; event)
&lt;/h4&gt;

&lt;p&gt;LocalStorage has a cool superpower: it can trigger events across different tabs of the same website! If a user has your site open in two tabs and changes their theme in Tab A, Tab B can automatically detect it and update.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This only works for &lt;code&gt;localStorage&lt;/code&gt;, not &lt;code&gt;sessionStorage&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Run this code in your script to listen for storage changes from other tabs&lt;/span&gt;
&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;storage&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;key&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;theme&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Theme changed to: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;newValue&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;// Apply new theme instantly without refreshing the page!&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Storage Limits &amp;amp; Security (What to watch out for)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Storage Capacity:&lt;/strong&gt; Both typically allow around &lt;strong&gt;5MB to 10MB&lt;/strong&gt; of data per domain. That's plenty for text, settings, and small JSON objects, but don't try to store large files or images!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security Warning:&lt;/strong&gt; &lt;strong&gt;Never store sensitive data&lt;/strong&gt; like passwords, credit card numbers, or personal identification tokens in LocalStorage or sessionStorage. Anything stored there can be accessed by any malicious JavaScript script running on your page (via Cross-Site Scripting or XSS attacks).&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Summary
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;LocalStorage&lt;/th&gt;
&lt;th&gt;sessionStorage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Lifespan&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Forever (until cleared manually)&lt;/td&gt;
&lt;td&gt;Until the tab/window is closed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Scope&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Shared across all tabs/windows of the same site&lt;/td&gt;
&lt;td&gt;Isolated to that specific tab only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Capacity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;~5MB - 10MB&lt;/td&gt;
&lt;td&gt;~5MB - 10MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Best Used For&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Dark mode preferences, user settings, offline cached data&lt;/td&gt;
&lt;td&gt;Shopping cart temporary steps, multi-step form data&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Choosing between &lt;code&gt;localStorage&lt;/code&gt; and &lt;code&gt;sessionStorage&lt;/code&gt; is simple: &lt;strong&gt;Ask yourself, "Does this data need to survive if the user closes the tab?"&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If &lt;strong&gt;yes&lt;/strong&gt;, use &lt;code&gt;localStorage&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If &lt;strong&gt;no (it's temporary)&lt;/strong&gt;, use &lt;code&gt;sessionStorage&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;let me share your doubts about in this blog to put commands below&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>javascript</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Master VS Code Emmet Shortcuts</title>
      <dc:creator>balaji s</dc:creator>
      <pubDate>Sat, 26 Sep 2026 06:47:52 +0000</pubDate>
      <link>https://dev.to/rsbalaji/master-vs-code-emmet-shortcuts-272o</link>
      <guid>https://dev.to/rsbalaji/master-vs-code-emmet-shortcuts-272o</guid>
      <description>&lt;h2&gt;
  
  
  Write HTML and CSS 10x Faster
&lt;/h2&gt;

&lt;p&gt;If you spend hours manually typing out opening tags, closing tags, and CSS properties, there is a much better way. Built right into Visual Studio Code is a powerful tool called &lt;strong&gt;Emmet&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Emmet allows you to write shorthand abbreviations and expand them into complete, complex HTML and CSS code instantly with a single keystroke. Whether you are a beginner looking to speed up your workflow or an experienced developer wanting to cut down on repetitive typing, mastering Emmet is a game-changer.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Emmet?
&lt;/h2&gt;

&lt;p&gt;Emmet is a toolkit for web developers that turns simple CSS-like selectors into fully-fledged markup. Best of all, &lt;strong&gt;Emmet is built directly into VS Code by default&lt;/strong&gt;—no extensions or plugins required!&lt;/p&gt;

&lt;p&gt;When you type an abbreviation and press &lt;strong&gt;&lt;code&gt;Tab&lt;/code&gt;&lt;/strong&gt; (or &lt;strong&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/strong&gt;, depending on your settings), VS Code instantly translates your shortcut into clean, formatted code.&lt;/p&gt;




&lt;h2&gt;
  
  
  Essential HTML Emmet Shortcuts (With Examples)
&lt;/h2&gt;

&lt;p&gt;Here are the most practical Emmet shortcuts you will use every day when building web pages.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Ultimate Starter: The HTML5 Boilerplate
&lt;/h3&gt;

&lt;p&gt;Instead of copying and pasting a standard HTML skeleton every time you start a new file, just type an exclamation point and hit Tab.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shortcut:&lt;/strong&gt; &lt;code&gt;!&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Result:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Document&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  2. Elements with IDs and Classes
&lt;/h3&gt;

&lt;p&gt;You can create tags instantly by combining the tag name with &lt;code&gt;#&lt;/code&gt; for IDs and &lt;code&gt;.&lt;/code&gt; for classes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shortcut:&lt;/strong&gt; &lt;code&gt;div#main&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Result:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"main"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shortcut:&lt;/strong&gt; &lt;code&gt;section.container&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Result:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/section&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;em&gt;(Pro Tip: If you just type &lt;code&gt;.card&lt;/code&gt;, Emmet defaults to a &lt;code&gt;div&lt;/code&gt;, giving you &lt;code&gt;&amp;lt;div class="card"&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;!)&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Nesting Elements (The &lt;code&gt;&amp;gt;&lt;/code&gt; Operator)
&lt;/h3&gt;

&lt;p&gt;Want to put elements inside other elements? Use the greater-than sign (&lt;code&gt;&amp;gt;&lt;/code&gt;).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shortcut:&lt;/strong&gt; &lt;code&gt;ul&amp;gt;li&amp;gt;a&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Result:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  4. Multiplication (The &lt;code&gt;*&lt;/code&gt; Operator)
&lt;/h3&gt;

&lt;p&gt;Need multiple elements, like a list of items? Multiply them easily.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shortcut:&lt;/strong&gt; &lt;code&gt;ul&amp;gt;li*3&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Result:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  5. Adding Text Content Inside Tags (Using &lt;code&gt;{}&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;You can inject text directly into your tags using curly braces.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shortcut:&lt;/strong&gt; &lt;code&gt;button{Click Me}&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Result:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;button&amp;gt;&lt;/span&gt;Click Me&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;em&gt;Combined Example:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shortcut:&lt;/strong&gt; &lt;code&gt;ul&amp;gt;li.item*3{List Item}&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Result:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;List Item&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;List Item&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;List Item&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  6. Numbering Items with the Dollar Sign (&lt;code&gt;$&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;When creating multiple elements, you can automatically number them using &lt;code&gt;$&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shortcut:&lt;/strong&gt; &lt;code&gt;ul&amp;gt;li.item-$*3{Item $}&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Result:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item-1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Item 1&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item-2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Item 2&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item-3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Item 3&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Essential CSS Emmet Shortcuts
&lt;/h2&gt;

&lt;p&gt;Emmet isn't just for HTML—it works wonders in CSS files too by using shorthand abbreviations that expand into full property-value pairs.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Shortcut&lt;/th&gt;
&lt;th&gt;Expands To&lt;/th&gt;
&lt;th&gt;Example / Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;m10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;margin: 10px;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quick spacing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;p20&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;padding: 20px;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quick padding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;df&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;display: flex;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Flexbox setup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;aic&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;align-items: center;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Align flex items vertically&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;jcc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;justify-content: center;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Justify flex items horizontally&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;w100&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;width: 100px;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set width (or &lt;code&gt;w100%&lt;/code&gt; for percentages)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bgc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;background-color: #000;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Quick background color&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fz16&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;font-size: 16px;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Font sizing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;h2&gt;
  
  
  Official Emmet Documentation
&lt;/h2&gt;

&lt;p&gt;you can follow the link to learn more emmet shortcuts&lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://docs.emmet.io/cheat-sheet/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;docs.emmet.io&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;






&lt;h2&gt;
  
  
  Summary: Your Cheat Sheet to Remember
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Goal&lt;/th&gt;
&lt;th&gt;Shortcut Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Boilerplate&lt;/td&gt;
&lt;td&gt;&lt;code&gt;!&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Class / ID&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;div.wrapper&lt;/code&gt;, &lt;code&gt;span#header&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Child element&lt;/td&gt;
&lt;td&gt;&lt;code&gt;header&amp;gt;nav&amp;gt;ul&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multiple tags&lt;/td&gt;
&lt;td&gt;&lt;code&gt;div*4&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text inside&lt;/td&gt;
&lt;td&gt;&lt;code&gt;h1{Hello World}&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Numbering&lt;/td&gt;
&lt;td&gt;&lt;code&gt;p.text-$*2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Emmet takes a little bit of muscle memory to get used to, but once it clicks, it will save you thousands of keystrokes every single week. Start by incorporating just one or two shortcuts into your workflow today—like the &lt;code&gt;!&lt;/code&gt; boilerplate or &lt;code&gt;.class&lt;/code&gt; shortcuts—and work your way up to complex nested structures.&lt;/p&gt;

&lt;p&gt;What is your favorite Emmet shortcut to use in VS Code? Let us know in the comments below!&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>emmet</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>Comparision Operator in Javascript</title>
      <dc:creator>balaji s</dc:creator>
      <pubDate>Thu, 27 Aug 2026 07:05:41 +0000</pubDate>
      <link>https://dev.to/rsbalaji/comparision-operator-in-javascript-3m2k</link>
      <guid>https://dev.to/rsbalaji/comparision-operator-in-javascript-3m2k</guid>
      <description>&lt;p&gt;Comparison operators compare the values of two operands and evaluate whether the&lt;br&gt;
statement they form is &lt;code&gt;true&lt;/code&gt; or &lt;code&gt;false&lt;/code&gt;. The following example uses the&lt;br&gt;
&lt;em&gt;strict equality&lt;/em&gt; operator (&lt;code&gt;===&lt;/code&gt;) to compare two operands: the expression&lt;br&gt;
&lt;code&gt;2 + 2&lt;/code&gt; and the value &lt;code&gt;4&lt;/code&gt;. Because the result of the expression and the number&lt;br&gt;
value &lt;code&gt;4&lt;/code&gt; are the same, this expression evaluates to &lt;code&gt;true&lt;/code&gt;:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2 + 2 === 4
&amp;gt; true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Type coercion and equality
&lt;/h2&gt;

&lt;p&gt;Two of the most frequently-used comparison operators are &lt;code&gt;==&lt;/code&gt; for loose equality&lt;br&gt;
and &lt;code&gt;===&lt;/code&gt; for strict equality. &lt;code&gt;==&lt;/code&gt; performs a loose comparison between two&lt;br&gt;
values by coercing the operands to matching data types, if possible. For&lt;br&gt;
example, &lt;code&gt;2 == "2"&lt;/code&gt; returns &lt;code&gt;true&lt;/code&gt;, even though the comparison is being made&lt;br&gt;
between a number value and a string value.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2 == 2
&amp;gt; true

2 == "2"
&amp;gt; true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The same is true of &lt;code&gt;!=&lt;/code&gt;, which returns &lt;code&gt;true&lt;/code&gt; only if the operands being&lt;br&gt;
compared &lt;em&gt;aren't&lt;/em&gt; loosely equal.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2 != 3
&amp;gt; true

2 != "2"
&amp;gt; false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Strict comparisons using &lt;code&gt;===&lt;/code&gt; or &lt;code&gt;!==&lt;/code&gt; don't perform type coercion. For a&lt;br&gt;
strict comparison to evaluate to &lt;code&gt;true&lt;/code&gt;, the values being compared must have the&lt;br&gt;
same data type. Because of this, &lt;code&gt;2 == "2"&lt;/code&gt; returns &lt;code&gt;true&lt;/code&gt;, but &lt;code&gt;2 === "2"&lt;/code&gt;&lt;br&gt;
returns &lt;code&gt;false&lt;/code&gt;:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2 === 3
&amp;gt; false

2 === "2"
&amp;gt; false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;To remove any ambiguity that might result from auto-coercion, use &lt;code&gt;===&lt;/code&gt; whenever&lt;br&gt;
possible.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Operator&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Usage&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;===&lt;/td&gt;
&lt;td&gt;Strictly equal&lt;/td&gt;
&lt;td&gt;2 === 2&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;!==&lt;/td&gt;
&lt;td&gt;Not strictly-equal&lt;/td&gt;
&lt;td&gt;2 !== "2"&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;==&lt;/td&gt;
&lt;td&gt;Equal (or "loosely equal")&lt;/td&gt;
&lt;td&gt;2 == "2"&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;!=&lt;/td&gt;
&lt;td&gt;Not equal&lt;/td&gt;
&lt;td&gt;2 != "3"&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;gt;&lt;/td&gt;
&lt;td&gt;Greater than&lt;/td&gt;
&lt;td&gt;3 &amp;gt; 2&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;gt;=&lt;/td&gt;
&lt;td&gt;Greater than or equal to&lt;/td&gt;
&lt;td&gt;2 &amp;gt;= 2&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;&lt;/td&gt;
&lt;td&gt;Less than&lt;/td&gt;
&lt;td&gt;2 &amp;lt; 3&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;lt;=&lt;/td&gt;
&lt;td&gt;Less than or equal to&lt;/td&gt;
&lt;td&gt;2 &amp;lt;= 3&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Truthy and falsy
&lt;/h2&gt;

&lt;p&gt;All values in JavaScript are implicitly &lt;code&gt;true&lt;/code&gt; or &lt;code&gt;false&lt;/code&gt;, and can be coerced to&lt;br&gt;
the corresponding boolean value---for example, by using the "loosely equal"&lt;br&gt;
comparator. A limited set of values coerce to &lt;code&gt;false&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;null&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;undefined&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NaN&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;An empty string (&lt;code&gt;""&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All other values coerce to &lt;code&gt;true&lt;/code&gt;, including any string containing one or more&lt;br&gt;
characters and all nonzero numbers. These are commonly called "truthy" and&lt;br&gt;
"falsy" values.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"My string" == true
&amp;gt; true

100 == true
&amp;gt; true

0 == true
&amp;gt; false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Logical operators
&lt;/h2&gt;

&lt;p&gt;Use the logical AND (&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;), OR (&lt;code&gt;||&lt;/code&gt;), and NOT (&lt;code&gt;!&lt;/code&gt;) operators to control the flow of a script based on the evaluation of two or more conditional statements:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2 === 3 || 5 === 5;
&amp;gt; true

2 === 2 &amp;amp;&amp;amp; 2 === "2"
&amp;gt; false

2 === 2 &amp;amp;&amp;amp; !"My string."
&amp;gt; false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;A logical NOT (&lt;code&gt;!&lt;/code&gt;) expression negates the truthy or falsy value of an operand, evaluating to &lt;code&gt;true&lt;/code&gt; if the operand evaluates to &lt;code&gt;false&lt;/code&gt;, and &lt;code&gt;false&lt;/code&gt; if the operand evaluates to &lt;code&gt;true&lt;/code&gt;:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;true
&amp;gt; true

!true
&amp;gt; false

!false
&amp;gt; true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Using the logical NOT operator (&lt;code&gt;!&lt;/code&gt;) in front of another data type, like a&lt;br&gt;
number or a string, coerces that value to a boolean and reverses the truthy or&lt;br&gt;
falsy value of the result.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"string"
&amp;gt; "string"

!"string"
&amp;gt; false

0
&amp;gt; 0

!0
&amp;gt; true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;It's common practice to use two NOT operators to quickly coerce data to its&lt;br&gt;
matching boolean value:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;!!"string"
&amp;gt; true

!!0
&amp;gt; false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The logical AND and OR operators don't perform any coercion by themselves. They&lt;br&gt;
return the value of one of the two operands being evaluated, with the chosen&lt;br&gt;
operand determined by that evaluation.&lt;/p&gt;

&lt;p&gt;Logical AND (&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;) returns the first of its two operands only if that operand&lt;br&gt;
evaluates to &lt;code&gt;false&lt;/code&gt;, and the second operand otherwise. In comparisons that&lt;br&gt;
evaluate to boolean values, it returns &lt;code&gt;true&lt;/code&gt; only if the operands on both sides&lt;br&gt;
of the logical AND evaluate to &lt;code&gt;true&lt;/code&gt;. If either side evaluates to &lt;code&gt;false&lt;/code&gt;, it&lt;br&gt;
returns &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;true &amp;amp;&amp;amp; false
&amp;gt; false

false &amp;amp;&amp;amp; true
&amp;gt; false

false &amp;amp;&amp;amp; false
&amp;gt; false

true &amp;amp;&amp;amp; true
&amp;gt; true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;When &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; is used with two non-boolean operands, the first operand is returned&lt;br&gt;
unchanged if it can be coerced to &lt;code&gt;false&lt;/code&gt;. If the first operand can be coerced&lt;br&gt;
to &lt;code&gt;true&lt;/code&gt;, the second operand is returned unchanged:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;false &amp;amp;&amp;amp; "My string"
&amp;gt; false

null &amp;amp;&amp;amp; "My string"
&amp;gt; null

"My string" &amp;amp;&amp;amp; false
&amp;gt; false

"My string" &amp;amp;&amp;amp; "My second string"
&amp;gt; "My second string"

2 === 2 &amp;amp;&amp;amp; "My string"
&amp;gt; "My string"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Logical OR (&lt;code&gt;||&lt;/code&gt;) returns the first of its two operands only if that operand&lt;br&gt;
evaluates to &lt;code&gt;true&lt;/code&gt;, and the second operand otherwise. In comparisons that&lt;br&gt;
evaluate to boolean values, this means it returns &lt;code&gt;true&lt;/code&gt; if either operand&lt;br&gt;
evaluates to &lt;code&gt;true&lt;/code&gt;, and if neither side evaluates to &lt;code&gt;true&lt;/code&gt;, it returns&lt;br&gt;
&lt;code&gt;false&lt;/code&gt;:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;true || false
&amp;gt; true

false || true
&amp;gt; true

true || true
&amp;gt; true

false || false
&amp;gt; false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;When using &lt;code&gt;||&lt;/code&gt; with two non-boolean operands, it returns the first operand&lt;br&gt;
unchanged if it could be coerced to &lt;code&gt;true&lt;/code&gt;. If the first operand can be coerced&lt;br&gt;
to &lt;code&gt;false&lt;/code&gt;, the second operand is returned unchanged:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;false || "My string"
&amp;gt; "My string"

null || "My string"
&amp;gt; "My string"

"My string" || false
&amp;gt; "My string"

"My string" || "My second string"
&amp;gt; "My string"

2 === 2 || "My string"
&amp;gt; true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  Nullish coalescing operator
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://caniuse.com/mdn-javascript_operators_nullish_coalescing" rel="noopener noreferrer"&gt;Introduced in ES2020&lt;/a&gt;,&lt;br&gt;
the "nullish coalescing operator" (&lt;code&gt;??&lt;/code&gt;) returns the first operand only if that&lt;br&gt;
operand has any value other than &lt;code&gt;null&lt;/code&gt; or &lt;code&gt;undefined&lt;/code&gt;. Otherwise, it returns&lt;br&gt;
the second operand.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;null ?? "My string"
&amp;gt; "My string"

undefined ?? "My string"
&amp;gt; "My string"

true ?? "My string";
&amp;gt; true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;code&gt;??&lt;/code&gt; is similar to a logical OR, but stricter in how the first operand is&lt;br&gt;
evaluated. &lt;code&gt;||&lt;/code&gt; returns the second operand for any expression that can be&lt;br&gt;
coerced to &lt;code&gt;false&lt;/code&gt;, including &lt;code&gt;undefined&lt;/code&gt; and &lt;code&gt;null&lt;/code&gt;. &lt;code&gt;??&lt;/code&gt; returns the second&lt;br&gt;
operand only when the first operand is strictly equal to &lt;code&gt;null&lt;/code&gt; or &lt;code&gt;undefined&lt;/code&gt;,&lt;br&gt;
even if it could be coerced to &lt;code&gt;false&lt;/code&gt;:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;0 ?? "My string";
&amp;gt; 0

false ?? "My string";
&amp;gt; false

undefined ?? "My string";
&amp;gt; "My string"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Logical assignment operators
&lt;/h2&gt;

&lt;p&gt;Use assignment operators to assign the value of a second operator to a first&lt;br&gt;
operator. The most common example of this is a single equals sign (&lt;code&gt;=&lt;/code&gt;), used to&lt;br&gt;
assign a &lt;a href="https://web.dev/learn/javascript/data-types/variable#declaration" rel="noopener noreferrer"&gt;value to a declared variable&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Use logical assignment operators to conditionally assign a value to a variable&lt;br&gt;
based on the truthy or falsy value of that variable.&lt;/p&gt;

&lt;p&gt;The logical AND assignment (&lt;code&gt;&amp;amp;&amp;amp;=&lt;/code&gt;) operator evaluates the second operand and&lt;br&gt;
assigns to the first operand if the only if the first operand would evaluate to&lt;br&gt;
&lt;code&gt;true&lt;/code&gt;---effectively, "if the first operand is true, assign it the value of&lt;br&gt;
the second operand instead:"&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myVariable = false;
myVariable &amp;amp;&amp;amp;= 2 + 2;
&amp;gt; false

myVariable = true;
myVariable &amp;amp;&amp;amp;= 2 + 2;
&amp;gt; 4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The truthy or falsy value of the first operand determines whether an assignment&lt;br&gt;
is performed. However, trying to evaluate the first operand using a comparison&lt;br&gt;
operator results in a &lt;code&gt;true&lt;/code&gt; or &lt;code&gt;false&lt;/code&gt; boolean, which can't be assigned a&lt;br&gt;
value:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myVariable = 5;
myVariable &amp;gt; 2 &amp;amp;&amp;amp;= "My string"
&amp;gt; SyntaxError: Invalid left-hand side in assignment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The logical OR assignment (&lt;code&gt;||=&lt;/code&gt;) operator evaluates the second operand and&lt;br&gt;
assign to the first operand if the first operand evaluates to &lt;code&gt;false&lt;/code&gt;---&lt;br&gt;
effectively "if the first operand is false, assign it the value of the second&lt;br&gt;
operand instead:"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let myVariable = false;
myVariable ||= 2 + 2;
&amp;gt; 4

myVariable = true;
myVariable ||= 2 + 2;
&amp;gt; true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>javascript</category>
      <category>comparisionoperator</category>
      <category>operator</category>
    </item>
    <item>
      <title>Solved the Windows Shrink Volume Problem Using AOMEI Partition Assistant to Install Linux Mint</title>
      <dc:creator>balaji s</dc:creator>
      <pubDate>Sun, 12 Jul 2026 17:37:25 +0000</pubDate>
      <link>https://dev.to/rsbalaji/solved-the-windows-shrink-volume-problem-using-aomei-partition-assistant-to-install-linux-mint-4ed6</link>
      <guid>https://dev.to/rsbalaji/solved-the-windows-shrink-volume-problem-using-aomei-partition-assistant-to-install-linux-mint-4ed6</guid>
      <description>&lt;p&gt;Recently, I wanted to install Linux Mint Cinnamon alongside Windows 11 on my Samsung Galaxy Book2 Pro 360. Since my laptop had only a single &lt;strong&gt;C: drive&lt;/strong&gt;, I needed to shrink the Windows partition and create &lt;strong&gt;100 GB of unallocated space&lt;/strong&gt; for &lt;strong&gt;&lt;em&gt;Linux&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;At first, I thought Windows Disk Management would be enough. However, I encountered one of the most common Windows partitioning errors:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1oz6ino7pczbmpswog77.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1oz6ino7pczbmpswog77.png" alt=" " width="670" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You cannot shrink a volume beyond the point where any unmovable files are located.&lt;br&gt;
Although my C: drive had 147 GB of free space, Windows only allowed me to shrink 653 MB.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Problem Begins
&lt;/h2&gt;

&lt;p&gt;When I opened Disk Management &lt;strong&gt;Right Click C: → Shrink Volume&lt;/strong&gt; Windows calculated the available shrink space as only &lt;strong&gt;653 MB&lt;/strong&gt; instead of the expected 100 GB.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does This Happen?
&lt;/h2&gt;

&lt;p&gt;Windows stores several system files near the end of the partition.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Page File (pagefile.sys)&lt;/li&gt;
&lt;li&gt;Hibernation File (hiberfil.sys)&lt;/li&gt;
&lt;li&gt;Master File Table (MFT)&lt;/li&gt;
&lt;li&gt;System Restore data&lt;/li&gt;
&lt;li&gt;NTFS Metadata&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Windows Disk Management cannot move these files.&lt;/p&gt;

&lt;p&gt;Even if available of free space exists, the partition cannot be shrunk beyond the last unmovable file.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Tried Before Using AOMEI
&lt;/h2&gt;

&lt;p&gt;Before installing any third-party software, I tried every recommended Windows method.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Disabled Hibernation
&lt;/h3&gt;

&lt;p&gt;Opened Command Prompt as Administrator.&lt;br&gt;
&lt;code&gt;powercfg -h off&lt;/code&gt;&lt;br&gt;
This removed the hibernation file.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Disabled Page File
&lt;/h3&gt;

&lt;p&gt;Open &lt;strong&gt;run&lt;/strong&gt; window  &lt;code&gt;sysdm.cpl&lt;/code&gt; Navigated to&lt;/p&gt;

&lt;p&gt;Advanced&lt;br&gt;
→ Performance&lt;br&gt;
→ Settings&lt;br&gt;
→ Advanced&lt;br&gt;
→ Virtual Memory&lt;/p&gt;

&lt;p&gt;It disabled paging temporarily then Restarted Windows.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Disabled System Protection
&lt;/h3&gt;

&lt;p&gt;Opened &lt;strong&gt;System Protection&lt;/strong&gt; then Turned off Restore Points temporarily.&lt;br&gt;
again Restarted Windows.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Defragmented Free Space
&lt;/h3&gt;

&lt;p&gt;Run &lt;code&gt;defrag C: /X&lt;/code&gt; The result showed:&lt;br&gt;
Largest Free Space = 65.92 GB&lt;br&gt;
Although free space became more contiguous, Windows still could not shrink the partition to the required size.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Tried Safe Mode
&lt;/h3&gt;

&lt;p&gt;Enabled Safe Mode using &lt;code&gt;msconfig&lt;/code&gt;then Restarted Windows.&lt;br&gt;
Unfortunately,&lt;br&gt;
Disk Management still could not shrink the partition because the Master File Table (MFT) remained unmovable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Chose AOMEI Partition Assistant
&lt;/h2&gt;

&lt;p&gt;At this point, it became clear that Windows Disk Management had reached its limitations.&lt;/p&gt;

&lt;p&gt;I researched several partition management tools and selected AOMEI Partition Assistant Standard for the following reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Free for personal use&lt;/li&gt;
&lt;li&gt;User-friendly interface&lt;/li&gt;
&lt;li&gt;Supports resizing the Windows system partition&lt;/li&gt;
&lt;li&gt;Can move unmovable system files&lt;/li&gt;
&lt;li&gt;Uses Windows PE mode for safe partition operations&lt;/li&gt;
&lt;li&gt;Excellent success rate reported by users&lt;/li&gt;
&lt;li&gt;Supports GPT/UEFI systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unlike Windows Disk Management, AOMEI performs partition operations before Windows fully loads, allowing it to relocate files that Windows normally locks.&lt;/p&gt;

&lt;h2&gt;
  
  
  AOMEI Partition Assistant Tool
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1
&lt;/h3&gt;

&lt;p&gt;Download and install&lt;br&gt;
AOMEI Partition Assistant Standard from following link: &lt;a href="https://www.aomeitech.com/llyy/download/aomei-partition-software.html" rel="noopener noreferrer"&gt;https://www.aomeitech.com/llyy/download/aomei-partition-software.html&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2
&lt;/h3&gt;

&lt;p&gt;Select shrinking disk from partition list&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvt9ioo3os7mdvzzu1nyf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvt9ioo3os7mdvzzu1nyf.png" alt=" " width="799" height="418"&gt;&lt;/a&gt;&lt;br&gt;
Select &lt;strong&gt;Resize/Move Partition&lt;/strong&gt; from properties&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3
&lt;/h3&gt;

&lt;p&gt;Drag the partition slider.&lt;br&gt;
I reduced the partition size from 457 GB to 357 GB&lt;br&gt;
This creates &lt;strong&gt;100 GB Unallocated Space&lt;/strong&gt; &lt;br&gt;
Finally I review the pending operation then layout should show&lt;br&gt;
C: 357 GB&lt;br&gt;
Unallocated: 100 GB&lt;br&gt;
Nothing is changed yet because my linux installation take to choose format options.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fscuzote9xnwh7z7ro5ll.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fscuzote9xnwh7z7ro5ll.png" alt=" " width="799" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4
&lt;/h3&gt;

&lt;p&gt;AOMEI detects that the Windows system partition is being modified.&lt;/p&gt;

&lt;p&gt;It displays Restart into Windows PE Mode&lt;br&gt;
so Select that one then Click -&amp;gt; OK&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2d7sxno11e8gv0ibf003.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2d7sxno11e8gv0ibf003.png" alt=" " width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5
&lt;/h3&gt;

&lt;p&gt;The computer restarts. Instead of loading Windows immediately, AOMEI boots into its own Windows PE environment. It safely moves the unmovable system files. This process took around 10–20 minutes on my SSD.&lt;br&gt;
After restart windows I am opening Disk Management it showed 100GB unallocated exactly as my planned.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing Linux Mint
&lt;/h2&gt;

&lt;p&gt;Instead of formatting the new space as NTFS, I left it as Unallocated.&lt;br&gt;
Then I booted using the Linux Mint USB installer.&lt;br&gt;
During installation, I selected &lt;code&gt;Something Else&lt;/code&gt; option&lt;br&gt;
Created an &lt;code&gt;Ext4&lt;/code&gt; partition using the &lt;strong&gt;100 GB unallocated space&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Reused the existing EFI System Partition without formatting it.&lt;/p&gt;

&lt;p&gt;Finally my installation completed successfully.&lt;br&gt;
Now my laptop have dual boots:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Windows 11&lt;/li&gt;
&lt;li&gt;Linux Mint Cinnamon&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>linux</category>
      <category>linuxinstallation</category>
      <category>dualboot</category>
      <category>windowspartition</category>
    </item>
  </channel>
</rss>
