<?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: Saravanan Lakshmanan</title>
    <description>The latest articles on DEV Community by Saravanan Lakshmanan (@dev_saravanan_journey).</description>
    <link>https://dev.to/dev_saravanan_journey</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%2F3927221%2F86db017d-8633-4bd5-9ac1-97ee29f0d80e.png</url>
      <title>DEV Community: Saravanan Lakshmanan</title>
      <link>https://dev.to/dev_saravanan_journey</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dev_saravanan_journey"/>
    <language>en</language>
    <item>
      <title>JavaScript Arrays</title>
      <dc:creator>Saravanan Lakshmanan</dc:creator>
      <pubDate>Fri, 19 Jun 2026 13:28:28 +0000</pubDate>
      <link>https://dev.to/dev_saravanan_journey/javascript-arrays-4h1e</link>
      <guid>https://dev.to/dev_saravanan_journey/javascript-arrays-4h1e</guid>
      <description>&lt;h2&gt;
  
  
  What is an Array?
&lt;/h2&gt;

&lt;p&gt;An Array is a special object in JavaScript used to store multiple values in a single variable.&lt;/p&gt;

&lt;p&gt;Imagine you want to store the names of 5 students.&lt;/p&gt;

&lt;p&gt;❌ Without Array:&lt;/p&gt;

&lt;p&gt;let student1 = "Ram";&lt;br&gt;
let student2 = "Priya";&lt;br&gt;
let student3 = "Kumar";&lt;br&gt;
let student4 = "John";&lt;br&gt;
let student5 = "Sara";&lt;/p&gt;

&lt;p&gt;✅ With Array:&lt;/p&gt;

&lt;p&gt;let students = ["Ram", "Priya", "Kumar", "John", "Sara"];&lt;/p&gt;

&lt;p&gt;Instead of creating multiple variables, we store all values inside one array.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Creating Arrays (2 Methods)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Method 1: Array Literal (Most Common)
&lt;/h3&gt;

&lt;p&gt;This is the easiest and most commonly used method.&lt;/p&gt;

&lt;p&gt;let fruits = ["Apple", "Mango", "Orange"];&lt;/p&gt;

&lt;p&gt;How it works:&lt;/p&gt;

&lt;p&gt;Index    Value&lt;/p&gt;




&lt;p&gt;0        Apple&lt;br&gt;
1        Mango&lt;br&gt;
2        Orange&lt;/p&gt;




&lt;h3&gt;
  
  
  Method 2: Array Constructor
&lt;/h3&gt;

&lt;p&gt;Arrays can also be created using the Array() constructor.&lt;/p&gt;

&lt;p&gt;let fruits = new Array("Apple", "Mango", "Orange");&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;["Apple", "Mango", "Orange"]&lt;/p&gt;

&lt;p&gt;Note:&lt;/p&gt;

&lt;p&gt;Most developers prefer the Array Literal method because it is shorter and easier to read.&lt;/p&gt;

&lt;p&gt;Preferred:&lt;br&gt;
let fruits = ["Apple", "Mango", "Orange"];&lt;/p&gt;

&lt;p&gt;Less Common:&lt;br&gt;
let fruits = new Array("Apple", "Mango", "Orange");&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Understanding Index
&lt;/h2&gt;

&lt;p&gt;Every element in an array has a position called an index.&lt;/p&gt;

&lt;p&gt;⚠️ Array indexing starts from 0, not 1.&lt;/p&gt;

&lt;p&gt;let fruits = ["Apple", "Mango", "Orange"];&lt;/p&gt;

&lt;p&gt;Index    Value&lt;/p&gt;




&lt;p&gt;0        Apple&lt;br&gt;
1        Mango&lt;br&gt;
2        Orange&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Accessing Array Elements
&lt;/h2&gt;

&lt;p&gt;Use square brackets [] with the index number.&lt;/p&gt;

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

&lt;p&gt;let fruits = ["Apple", "Mango", "Orange"];&lt;/p&gt;

&lt;p&gt;console.log(fruits[0]); // Apple&lt;br&gt;
console.log(fruits[1]); // Mango&lt;br&gt;
console.log(fruits[2]); // Orange&lt;/p&gt;

&lt;p&gt;Accessing an Invalid Index:&lt;/p&gt;

&lt;p&gt;console.log(fruits[5]);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;undefined&lt;/p&gt;

&lt;p&gt;Because index 5 does not exist.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Array Length Property
&lt;/h2&gt;

&lt;p&gt;The length property returns the total number of elements in an array.&lt;/p&gt;

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

&lt;p&gt;let fruits = ["Apple", "Mango", "Orange"];&lt;/p&gt;

&lt;p&gt;console.log(fruits.length);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;3&lt;/p&gt;

&lt;p&gt;Because there are 3 elements.&lt;/p&gt;

&lt;p&gt;Another Example:&lt;/p&gt;

&lt;p&gt;let numbers = [10, 20, 30, 40, 50];&lt;/p&gt;

&lt;p&gt;console.log(numbers.length);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;5&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Getting the Last Element Using Length
&lt;/h2&gt;

&lt;p&gt;A common interview question.&lt;/p&gt;

&lt;p&gt;let fruits = ["Apple", "Mango", "Orange"];&lt;/p&gt;

&lt;p&gt;console.log(fruits[fruits.length - 1]);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;Orange&lt;/p&gt;

&lt;p&gt;Explanation:&lt;/p&gt;

&lt;p&gt;fruits.length returns 3&lt;/p&gt;

&lt;p&gt;Last Index = 3 - 1 = 2&lt;/p&gt;

&lt;p&gt;fruits[2] returns Orange&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Array Elements Can Be Any Data Type
&lt;/h2&gt;

&lt;p&gt;Unlike Java, JavaScript arrays can store different types of values in the same array.&lt;/p&gt;

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

&lt;p&gt;let data = [&lt;br&gt;
    "Saravanan",&lt;br&gt;
    26,&lt;br&gt;
    true,&lt;br&gt;
    null&lt;br&gt;
];&lt;/p&gt;

&lt;p&gt;console.log(data);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;["Saravanan", 26, true, null]&lt;/p&gt;




&lt;h3&gt;
  
  
  Arrays Can Store Objects
&lt;/h3&gt;

&lt;p&gt;let person = [&lt;br&gt;
    {&lt;br&gt;
        name: "Saravanan",&lt;br&gt;
        age: 26&lt;br&gt;
    }&lt;br&gt;
];&lt;/p&gt;

&lt;p&gt;console.log(person);&lt;/p&gt;




&lt;h3&gt;
  
  
  Arrays Can Store Other Arrays
&lt;/h3&gt;

&lt;p&gt;let nestedArray = [&lt;br&gt;
    [10, 20],&lt;br&gt;
    [30, 40]&lt;br&gt;
];&lt;/p&gt;

&lt;p&gt;console.log(nestedArray);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;[[10,20],[30,40]]&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Using Loops with Arrays
&lt;/h2&gt;

&lt;p&gt;Arrays are commonly used with loops because they allow us to process multiple values efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using a Traditional for Loop
&lt;/h3&gt;

&lt;p&gt;let fruits = ["Apple", "Mango", "Orange"];&lt;/p&gt;

&lt;p&gt;for (let i = 0; i &amp;lt; fruits.length; i++) {&lt;br&gt;
    console.log(fruits[i]);&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;Apple&lt;br&gt;
Mango&lt;br&gt;
Orange&lt;/p&gt;

&lt;p&gt;How it Works:&lt;/p&gt;

&lt;p&gt;1st Iteration:&lt;br&gt;
i = 0&lt;br&gt;
fruits[0] → Apple&lt;/p&gt;

&lt;p&gt;2nd Iteration:&lt;br&gt;
i = 1&lt;br&gt;
fruits[1] → Mango&lt;/p&gt;

&lt;p&gt;3rd Iteration:&lt;br&gt;
i = 2&lt;br&gt;
fruits[2] → Orange&lt;/p&gt;

&lt;p&gt;Loop stops when:&lt;br&gt;
i &amp;lt; fruits.length becomes false.&lt;/p&gt;




&lt;p&gt;References:&lt;br&gt;
&lt;a href="https://www.w3schools.com/js/js_arrays.asp" rel="noopener noreferrer"&gt;https://www.w3schools.com/js/js_arrays.asp&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/javascript/javascript-arrays/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/javascript/javascript-arrays/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>JavaScript Constructor Functions</title>
      <dc:creator>Saravanan Lakshmanan</dc:creator>
      <pubDate>Wed, 17 Jun 2026 15:54:58 +0000</pubDate>
      <link>https://dev.to/dev_saravanan_journey/javascript-constructor-functions-k6k</link>
      <guid>https://dev.to/dev_saravanan_journey/javascript-constructor-functions-k6k</guid>
      <description>&lt;h2&gt;
  
  
  What is a Constructor Function?
&lt;/h2&gt;

&lt;p&gt;A Constructor Function is a regular JavaScript function used with the &lt;code&gt;new&lt;/code&gt; keyword to create and initialize multiple objects with the same structure.&lt;/p&gt;

&lt;p&gt;It acts like a blueprint for creating objects.&lt;/p&gt;

&lt;p&gt;By convention, constructor function names start with a capital letter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Syntax
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;ConstructorName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;parameter1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;parameter2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;property1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;parameter1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;property2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;parameter2&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;h2&gt;
  
  
  Example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Employee&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="nx"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;salary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;emp1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Saravanan&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50000&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;emp1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Output
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;Employee&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Saravanan&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;50000&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  How the &lt;code&gt;new&lt;/code&gt; Keyword Works
&lt;/h2&gt;

&lt;p&gt;When JavaScript executes:&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;emp1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Saravanan&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it performs the following steps automatically:&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Creates an Empty Object
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2: Sets &lt;code&gt;this&lt;/code&gt; to the New Object
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;this&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Executes the Constructor Function
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Saravanan&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;salary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;50000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Result:&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="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Saravanan&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;50000&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 4: Returns the Object Automatically
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Understanding &lt;code&gt;this&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Inside a constructor function, &lt;code&gt;this&lt;/code&gt; refers to the newly created object.&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Employee&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="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;emp1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Saravanan&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;p&gt;Internally:&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;emp1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Saravanan&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;p&gt;The property name is on the left side and the value comes from the parameter on the right side.&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="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Creating Multiple Objects
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Employee&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="nx"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;salary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;emp1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Ram&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;emp2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Kumar&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;60000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;emp3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Ajay&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;70000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All objects follow the same structure.&lt;/p&gt;




&lt;h2&gt;
  
  
  Adding Methods
&lt;/h2&gt;

&lt;p&gt;Constructor functions can also contain methods.&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Employee&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="nx"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;salary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;displayInfo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&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="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; earns &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;emp1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Saravanan&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;emp1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;displayInfo&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Output
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;Saravanan&lt;/span&gt; &lt;span class="nx"&gt;earns&lt;/span&gt; &lt;span class="mi"&gt;50000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  CRUD Operations on Constructor Function Objects
&lt;/h2&gt;

&lt;p&gt;Objects created using constructor functions behave like normal JavaScript objects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;emp1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;26&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Read
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&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;emp1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Update
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;emp1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;27&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Delete
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;delete&lt;/span&gt; &lt;span class="nx"&gt;emp1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;age&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Adding Properties to One Object
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;emp1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;department&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;IT&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;p&gt;Only &lt;code&gt;emp1&lt;/code&gt; receives the property.&lt;/p&gt;




&lt;h2&gt;
  
  
  Adding Properties for All Objects Using Prototype
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;company&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;TCS&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;p&gt;Now all Employee objects can access the property.&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;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;emp1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;company&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;emp2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;company&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Output
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;TCS&lt;/span&gt;
&lt;span class="nx"&gt;TCS&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Adding Shared Methods Using Prototype
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;greet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="k"&gt;this&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="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now every Employee object can use the same method.&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;emp1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;emp2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This approach is more memory-efficient because only one copy of the function exists.&lt;/p&gt;




&lt;h2&gt;
  
  
  Constructor Function vs Object Literal
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Object Literal
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;employee&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="s2"&gt;Ram&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;50000&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Best when creating a single object.&lt;/p&gt;

&lt;h3&gt;
  
  
  Constructor Function
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Employee&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="nx"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;salary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;salary&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;p&gt;Best when creating multiple objects with the same structure.&lt;/p&gt;




&lt;p&gt;References:&lt;br&gt;
&lt;a href="https://www.w3schools.com/js/js_object_constructors.asp" rel="noopener noreferrer"&gt;https://www.w3schools.com/js/js_object_constructors.asp&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/javascript/javascript-function-constructor/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/javascript/javascript-function-constructor/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/Function" rel="noopener noreferrer"&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/Function&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>learning</category>
      <category>beginners</category>
    </item>
    <item>
      <title>JavaScript Objects: From Basics to CRUD Operations</title>
      <dc:creator>Saravanan Lakshmanan</dc:creator>
      <pubDate>Tue, 16 Jun 2026 16:13:22 +0000</pubDate>
      <link>https://dev.to/dev_saravanan_journey/javascript-objects-from-basics-to-crud-operations-46bg</link>
      <guid>https://dev.to/dev_saravanan_journey/javascript-objects-from-basics-to-crud-operations-46bg</guid>
      <description>&lt;h1&gt;
  
  
  JavaScript Objects
&lt;/h1&gt;

&lt;p&gt;==================================================&lt;/p&gt;

&lt;h1&gt;
  
  
  1. WHAT IS AN OBJECT?
&lt;/h1&gt;

&lt;p&gt;An object is a collection of related data and functionality stored as key-value pairs.&lt;/p&gt;

&lt;p&gt;An object is a non-primitive data type in JavaScript used to store related data and behavior as key-value pairs.&lt;/p&gt;

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

&lt;p&gt;let student = {&lt;br&gt;
    name: "Saravanan",&lt;br&gt;
    age: 25,&lt;br&gt;
    city: "Chennai"&lt;br&gt;
};&lt;/p&gt;




&lt;p&gt;Real-Life Example:&lt;/p&gt;

&lt;p&gt;Instead of:&lt;/p&gt;

&lt;p&gt;let name = "Saravanan";&lt;br&gt;
let age = 25;&lt;br&gt;
let city = "Chennai";&lt;/p&gt;

&lt;p&gt;We can group them together:&lt;/p&gt;

&lt;p&gt;let student = {&lt;br&gt;
    name: "Saravanan",&lt;br&gt;
    age: 25,&lt;br&gt;
    city: "Chennai"&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;This grouped structure is called an Object.&lt;/p&gt;

&lt;p&gt;==================================================&lt;/p&gt;

&lt;h1&gt;
  
  
  2. ENTITY, STATE AND BEHAVIOR
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Entity
&lt;/h3&gt;

&lt;p&gt;An entity is a real-world thing that can be identified separately.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;p&gt;Student&lt;br&gt;
Employee&lt;br&gt;
Car&lt;br&gt;
Book&lt;br&gt;
Mobile&lt;br&gt;
Person&lt;/p&gt;

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

&lt;p&gt;Entity = Student&lt;/p&gt;

&lt;p&gt;let student = {&lt;br&gt;
    name: "Saravanan",&lt;br&gt;
    age: 25&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;The object represents the entity in code.&lt;/p&gt;




&lt;h3&gt;
  
  
  State (Attributes / Properties)
&lt;/h3&gt;

&lt;p&gt;State describes what an object HAS.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;p&gt;Name&lt;br&gt;
Age&lt;br&gt;
City&lt;/p&gt;

&lt;p&gt;JavaScript:&lt;/p&gt;

&lt;p&gt;let student = {&lt;br&gt;
    name: "Saravanan",&lt;br&gt;
    age: 25,&lt;br&gt;
    city: "Chennai"&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;Here:&lt;/p&gt;

&lt;p&gt;name&lt;br&gt;
age&lt;br&gt;
city&lt;/p&gt;

&lt;p&gt;are states (properties).&lt;/p&gt;




&lt;h3&gt;
  
  
  Behavior (Methods)
&lt;/h3&gt;

&lt;p&gt;Behavior describes what an object DOES.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;p&gt;study()&lt;br&gt;
walk()&lt;br&gt;
eat()&lt;br&gt;
talk()&lt;/p&gt;

&lt;p&gt;JavaScript:&lt;/p&gt;

&lt;p&gt;let student = {&lt;br&gt;
    study() {&lt;br&gt;
        console.log("Studying...");&lt;br&gt;
    }&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;Here study() is behavior.&lt;/p&gt;




&lt;p&gt;Easy Memory Trick:&lt;/p&gt;

&lt;p&gt;Entity   = Who/What is it?&lt;/p&gt;

&lt;p&gt;State    = What does it have?&lt;/p&gt;

&lt;p&gt;Behavior = What can it do?&lt;/p&gt;

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

&lt;p&gt;Entity   = Student&lt;/p&gt;

&lt;p&gt;State    = Name, Age&lt;/p&gt;

&lt;p&gt;Behavior = Study(), AttendClass()&lt;/p&gt;

&lt;p&gt;==================================================&lt;/p&gt;

&lt;h1&gt;
  
  
  3. PROPERTIES AND VALUES
&lt;/h1&gt;

&lt;p&gt;let person = {&lt;br&gt;
    name: "Saravanan",&lt;br&gt;
    age: 25&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;Structure:&lt;/p&gt;

&lt;p&gt;Property (Key)     Value&lt;/p&gt;

&lt;p&gt;name          -&amp;gt;   Saravanan&lt;br&gt;
age           -&amp;gt;   25&lt;/p&gt;

&lt;p&gt;So:&lt;/p&gt;

&lt;p&gt;name = Property&lt;br&gt;
"Saravanan" = Value&lt;/p&gt;

&lt;p&gt;==================================================&lt;/p&gt;

&lt;h1&gt;
  
  
  4. ACCESSING OBJECT PROPERTIES
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Dot Notation
&lt;/h3&gt;

&lt;p&gt;console.log(person.name);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;Saravanan&lt;/p&gt;




&lt;h3&gt;
  
  
  Bracket Notation
&lt;/h3&gt;

&lt;p&gt;console.log(person["name"]);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;Saravanan&lt;/p&gt;

&lt;p&gt;==================================================&lt;/p&gt;

&lt;h1&gt;
  
  
  5. OBJECT LITERAL
&lt;/h1&gt;

&lt;p&gt;This is the most common way of creating objects.&lt;/p&gt;

&lt;p&gt;let person = {&lt;br&gt;
    name: "Saravanan",&lt;br&gt;
    age: 25&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;The {} syntax is called an Object Literal.&lt;/p&gt;

&lt;p&gt;Why called Literal?&lt;/p&gt;

&lt;p&gt;Because the object is created directly using curly braces.&lt;/p&gt;

&lt;p&gt;==================================================&lt;/p&gt;

&lt;h1&gt;
  
  
  6. OBJECT CONSTRUCTOR
&lt;/h1&gt;

&lt;p&gt;Objects can also be created using the Object constructor.&lt;/p&gt;

&lt;p&gt;let person = new Object();&lt;/p&gt;

&lt;p&gt;person.name = "Saravanan";&lt;br&gt;
person.age = 25;&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
    name: "Saravanan",&lt;br&gt;
    age: 25&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Difference:&lt;/p&gt;

&lt;p&gt;Object Literal:&lt;/p&gt;

&lt;p&gt;let person = {&lt;br&gt;
    name: "Saravanan"&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;Object Constructor:&lt;/p&gt;

&lt;p&gt;let person = new Object();&lt;/p&gt;

&lt;p&gt;person.name = "Saravanan";&lt;/p&gt;

&lt;p&gt;Most developers prefer Object Literal because it is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shorter&lt;/li&gt;
&lt;li&gt;Cleaner&lt;/li&gt;
&lt;li&gt;Easier to read&lt;/li&gt;
&lt;li&gt;Most commonly used&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;==================================================&lt;/p&gt;

&lt;h1&gt;
  
  
  7. CRUD OPERATIONS IN OBJECTS
&lt;/h1&gt;

&lt;p&gt;CRUD stands for:&lt;/p&gt;

&lt;p&gt;C → Create&lt;br&gt;
R → Read&lt;br&gt;
U → Update&lt;br&gt;
D → Delete&lt;/p&gt;

&lt;p&gt;These are the four basic operations performed on data.&lt;/p&gt;




&lt;h3&gt;
  
  
  CREATE
&lt;/h3&gt;

&lt;p&gt;Creating an object.&lt;/p&gt;

&lt;p&gt;let person = {&lt;br&gt;
    name: "Saravanan",&lt;br&gt;
    age: 25&lt;br&gt;
};&lt;/p&gt;




&lt;h3&gt;
  
  
  READ
&lt;/h3&gt;

&lt;p&gt;Reading object properties.&lt;/p&gt;

&lt;p&gt;console.log(person.name);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;Saravanan&lt;/p&gt;

&lt;p&gt;OR&lt;/p&gt;

&lt;p&gt;console.log(person["age"]);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;25&lt;/p&gt;




&lt;h3&gt;
  
  
  UPDATE
&lt;/h3&gt;

&lt;p&gt;Updating an existing property.&lt;/p&gt;

&lt;p&gt;person.age = 26;&lt;/p&gt;

&lt;p&gt;Before:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
    name: "Saravanan",&lt;br&gt;
    age: 25&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;After:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
    name: "Saravanan",&lt;br&gt;
    age: 26&lt;br&gt;
}&lt;/p&gt;




&lt;h3&gt;
  
  
  DELETE
&lt;/h3&gt;

&lt;p&gt;Deleting a property.&lt;/p&gt;

&lt;p&gt;delete person.age;&lt;/p&gt;

&lt;p&gt;Before:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
    name: "Saravanan",&lt;br&gt;
    age: 25&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;After:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
    name: "Saravanan"&lt;br&gt;
}&lt;/p&gt;




&lt;h3&gt;
  
  
  Complete CRUD Example
&lt;/h3&gt;

&lt;p&gt;// CREATE&lt;br&gt;
let person = {&lt;br&gt;
    name: "Saravanan",&lt;br&gt;
    age: 25&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;// READ&lt;br&gt;
console.log(person.name);&lt;/p&gt;

&lt;p&gt;// UPDATE&lt;br&gt;
person.age = 26;&lt;/p&gt;

&lt;p&gt;// DELETE&lt;br&gt;
delete person.age;&lt;/p&gt;

&lt;p&gt;==================================================&lt;/p&gt;

&lt;h1&gt;
  
  
  8. ADDING, UPDATING AND DELETING PROPERTIES
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Add Property
&lt;/h3&gt;

&lt;p&gt;let person = {&lt;br&gt;
    name: "Saravanan"&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;person.age = 25;&lt;/p&gt;

&lt;p&gt;Result:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
    name: "Saravanan",&lt;br&gt;
    age: 25&lt;br&gt;
}&lt;/p&gt;




&lt;h3&gt;
  
  
  Update Property
&lt;/h3&gt;

&lt;p&gt;person.age = 26;&lt;/p&gt;




&lt;h3&gt;
  
  
  Delete Property
&lt;/h3&gt;

&lt;p&gt;delete person.age;&lt;/p&gt;

&lt;p&gt;==================================================&lt;/p&gt;

&lt;h1&gt;
  
  
  9. METHODS IN OBJECTS
&lt;/h1&gt;

&lt;p&gt;Functions stored inside objects are called Methods.&lt;/p&gt;

&lt;p&gt;let person = {&lt;br&gt;
    name: "Saravanan",&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;greet: function() {
    console.log("Hello");
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;};&lt;/p&gt;

&lt;p&gt;Calling Method:&lt;/p&gt;

&lt;p&gt;person.greet();&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;Hello&lt;/p&gt;

&lt;p&gt;==================================================&lt;/p&gt;

&lt;h1&gt;
  
  
  10. METHOD SHORTHAND (ES6)
&lt;/h1&gt;

&lt;p&gt;Instead of:&lt;/p&gt;

&lt;p&gt;let person = {&lt;br&gt;
    greet: function() {&lt;br&gt;
        console.log("Hello");&lt;br&gt;
    }&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;We can write:&lt;/p&gt;

&lt;p&gt;let person = {&lt;br&gt;
    greet() {&lt;br&gt;
        console.log("Hello");&lt;br&gt;
    }&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;Both produce the same result.&lt;/p&gt;

&lt;p&gt;Modern JavaScript prefers the shorthand version.&lt;/p&gt;

&lt;p&gt;==================================================&lt;/p&gt;

&lt;h1&gt;
  
  
  11. NESTED OBJECTS
&lt;/h1&gt;

&lt;p&gt;An object can contain another object.&lt;/p&gt;

&lt;p&gt;let person = {&lt;br&gt;
    name: "Saravanan",&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;address: {
    city: "Chennai",
    state: "Tamil Nadu",
    pincode: 600053
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;};&lt;/p&gt;

&lt;p&gt;This is called a Nested Object.&lt;/p&gt;

&lt;p&gt;==================================================&lt;/p&gt;

&lt;h1&gt;
  
  
  12. ACCESSING NESTED OBJECTS
&lt;/h1&gt;

&lt;p&gt;console.log(person.address.city);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;Chennai&lt;/p&gt;

&lt;p&gt;Breakdown:&lt;/p&gt;

&lt;p&gt;person&lt;br&gt;
   ↓&lt;br&gt;
address&lt;br&gt;
   ↓&lt;br&gt;
city&lt;/p&gt;

&lt;p&gt;==================================================&lt;/p&gt;

&lt;h1&gt;
  
  
  13. OBJECTS CAN STORE DIFFERENT TYPES OF VALUES
&lt;/h1&gt;

&lt;p&gt;let person = {&lt;br&gt;
    name: "Saravanan",&lt;br&gt;
    age: 25,&lt;br&gt;
    isStudent: true,&lt;br&gt;
    skills: ["HTML", "CSS", "JS"],&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;greet() {
    console.log("Hello");
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;};&lt;/p&gt;

&lt;p&gt;Objects can store:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;String&lt;/li&gt;
&lt;li&gt;Number&lt;/li&gt;
&lt;li&gt;Boolean&lt;/li&gt;
&lt;li&gt;Array&lt;/li&gt;
&lt;li&gt;Function&lt;/li&gt;
&lt;li&gt;Object&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;==================================================&lt;/p&gt;

&lt;h1&gt;
  
  
  14. REAL WORLD VISUALIZATION
&lt;/h1&gt;

&lt;p&gt;person&lt;br&gt;
│&lt;br&gt;
├── name      → Saravanan&lt;br&gt;
├── age       → 25&lt;br&gt;
│&lt;br&gt;
├── address   → Object&lt;br&gt;
│     │&lt;br&gt;
│     ├── city    → Chennai&lt;br&gt;
│     └── state   → Tamil Nadu&lt;br&gt;
│&lt;br&gt;
└── greet()   → Method&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>var, let, Single &amp; Multi-thread and Process in JavaScript</title>
      <dc:creator>Saravanan Lakshmanan</dc:creator>
      <pubDate>Mon, 15 Jun 2026 13:20:29 +0000</pubDate>
      <link>https://dev.to/dev_saravanan_journey/var-let-single-multi-thread-and-process-in-javascript-4j73</link>
      <guid>https://dev.to/dev_saravanan_journey/var-let-single-multi-thread-and-process-in-javascript-4j73</guid>
      <description>&lt;p&gt;Difference Between &lt;code&gt;var&lt;/code&gt; and &lt;code&gt;let&lt;/code&gt; in JavaScript&lt;/p&gt;

&lt;p&gt;In the early days of JavaScript, there was only one way of declaring variables and that was using the var keyword. A variable declared with var is defined throughout the program. One of the issues with using the var keyword was redeclaring a variable inside a block will also redeclare the variable outside the block. &lt;/p&gt;

&lt;p&gt;With the introduction of ES6 in 2015 two more keywords, let and const came into the picture. var and let are both used for variable declaration in javascript but the difference between them is that var is function scoped and let is block scoped. Variable declared by let cannot be redeclared and must be declared before use whereas variables declared with var keyword are hoisted. &lt;/p&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;var&lt;/th&gt;
&lt;th&gt;let&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Scope&lt;/td&gt;
&lt;td&gt;Function Scoped&lt;/td&gt;
&lt;td&gt;Block Scoped&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hoisting&lt;/td&gt;
&lt;td&gt;Hoisted and initialized as &lt;code&gt;undefined&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Hoisted but stays in Temporal Dead Zone (TDZ)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access before declaration&lt;/td&gt;
&lt;td&gt;Returns &lt;code&gt;undefined&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Throws &lt;code&gt;ReferenceError&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Re-declaration&lt;/td&gt;
&lt;td&gt;Allowed&lt;/td&gt;
&lt;td&gt;Not Allowed in same scope&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Loop behavior&lt;/td&gt;
&lt;td&gt;Can cause unexpected bugs&lt;/td&gt;
&lt;td&gt;Safer and predictable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Modern Usage&lt;/td&gt;
&lt;td&gt;Rarely used&lt;/td&gt;
&lt;td&gt;Recommended&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;✅ Example 1: Scope&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="k"&gt;if &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="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&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="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 10&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;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// ReferenceError&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;var&lt;/code&gt; escapes the block, while &lt;code&gt;let&lt;/code&gt; stays inside the block.&lt;/p&gt;

&lt;p&gt;✅ Example 2: Hoisting&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;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;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// undefined&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;y&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// ReferenceError&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;var&lt;/code&gt; is initialized with &lt;code&gt;undefined&lt;/code&gt;, whereas &lt;code&gt;let&lt;/code&gt; remains in the Temporal Dead Zone until its declaration.&lt;/p&gt;

&lt;p&gt;Why is &lt;code&gt;var&lt;/code&gt; avoided in modern JavaScript?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Function-scoped variables can lead to accidental bugs.&lt;/li&gt;
&lt;li&gt;Hoisting behavior can be confusing.&lt;/li&gt;
&lt;li&gt;Variables can be re-declared unintentionally.&lt;/li&gt;
&lt;li&gt;Loop-related issues occur more frequently with &lt;code&gt;var&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;let&lt;/code&gt; and &lt;code&gt;const&lt;/code&gt; provide safer and more predictable behavior.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Modern Best Practice&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Saravanan&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Use by default&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;            &lt;span class="c1"&gt;// Use when value changes&lt;/span&gt;

&lt;span class="c1"&gt;// Avoid var&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Understanding Single Thread, Multi Thread, Process, and Their Relationship
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. What is a Process?
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;Process&lt;/strong&gt; is simply a program that is currently running.&lt;/p&gt;

&lt;p&gt;For example, when you open:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chrome&lt;/li&gt;
&lt;li&gt;VS Code&lt;/li&gt;
&lt;li&gt;Spotify&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;each of them becomes a separate process in memory.&lt;/p&gt;

&lt;p&gt;Think of a process as a &lt;strong&gt;house&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The house contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memory&lt;/li&gt;
&lt;li&gt;Resources&lt;/li&gt;
&lt;li&gt;Files&lt;/li&gt;
&lt;li&gt;Execution environment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each process has its own separate resources.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;RAM
├── Chrome Process
├── VS Code Process
└── Spotify Process
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  2. What is a Thread?
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;Thread&lt;/strong&gt; is the smallest unit of execution inside a process.&lt;/p&gt;

&lt;p&gt;Think of a thread as a &lt;strong&gt;worker inside the house&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Restaurant (Process)

├── Cook (Thread)
├── Cashier (Thread)
└── Waiter (Thread)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The restaurant owns the resources.&lt;/p&gt;

&lt;p&gt;The workers perform the tasks.&lt;/p&gt;

&lt;p&gt;A process must have at least one thread.&lt;/p&gt;

&lt;p&gt;This first thread is called the &lt;strong&gt;Main Thread&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Relationship Between Process and Thread
&lt;/h2&gt;

&lt;p&gt;A process can contain one or more threads.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Process
│
├── Thread 1
├── Thread 2
├── Thread 3
└── Thread 4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Key Point:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Process owns resources and memory.&lt;/li&gt;
&lt;li&gt;Threads use those resources to perform work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Process = House&lt;/li&gt;
&lt;li&gt;Thread = People living in the house&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without the house, people cannot live there.&lt;/p&gt;

&lt;p&gt;Without threads, a process cannot perform work.&lt;/p&gt;




&lt;h1&gt;
  
  
  Single-Threading
&lt;/h1&gt;

&lt;p&gt;A single-threaded application has only one thread performing tasks.&lt;/p&gt;

&lt;p&gt;It can execute only one instruction at a time.&lt;/p&gt;

&lt;p&gt;Example:&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;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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Task 1&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Task 2&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Task 3&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;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Task 1
Task 2
Task 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Execution happens one after another.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real-Life Example
&lt;/h2&gt;

&lt;p&gt;Imagine a shop with only one cashier.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Customer 1
    ↓
Customer 2
    ↓
Customer 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each customer must wait for the previous customer to finish.&lt;/p&gt;

&lt;p&gt;That is Single Threading.&lt;/p&gt;




&lt;h1&gt;
  
  
  Multi-Threading
&lt;/h1&gt;

&lt;p&gt;A multi-threaded application can have multiple threads working simultaneously.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Process
│
├── Thread 1 → Download File
├── Thread 2 → Play Music
├── Thread 3 → Update Screen
└── Thread 4 → Calculate Data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Multiple tasks can run at the same time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real-Life Example
&lt;/h2&gt;

&lt;p&gt;Imagine a supermarket with three cashiers.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Cashier 1 → Customer 1
Cashier 2 → Customer 2
Cashier 3 → Customer 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Customers are served simultaneously.&lt;/p&gt;

&lt;p&gt;That is Multi Threading.&lt;/p&gt;




&lt;h1&gt;
  
  
  Single Thread vs Multi Thread
&lt;/h1&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;Single Thread&lt;/th&gt;
&lt;th&gt;Multi Thread&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Number of Threads&lt;/td&gt;
&lt;td&gt;One&lt;/td&gt;
&lt;td&gt;Multiple&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tasks&lt;/td&gt;
&lt;td&gt;One at a time&lt;/td&gt;
&lt;td&gt;Multiple at once&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Complexity&lt;/td&gt;
&lt;td&gt;Simple&lt;/td&gt;
&lt;td&gt;More complex&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speed&lt;/td&gt;
&lt;td&gt;Slower for multiple tasks&lt;/td&gt;
&lt;td&gt;Faster for parallel tasks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory Usage&lt;/td&gt;
&lt;td&gt;Lower&lt;/td&gt;
&lt;td&gt;Higher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Synchronization Issues&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Possible&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Example&lt;/td&gt;
&lt;td&gt;JavaScript Main Thread&lt;/td&gt;
&lt;td&gt;Java, C#, C++&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h1&gt;
  
  
  Is JavaScript Single Threaded?
&lt;/h1&gt;

&lt;p&gt;Yes.&lt;/p&gt;

&lt;p&gt;JavaScript is primarily a &lt;strong&gt;Single-Threaded Language&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One Call Stack&lt;/li&gt;
&lt;li&gt;One Main Thread&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&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;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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;A&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;1000000000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;B&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;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A
B
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;"B" waits until the loop completes because JavaScript executes one statement at a time.&lt;/p&gt;




&lt;h1&gt;
  
  
  Then How Does JavaScript Perform Multiple Tasks?
&lt;/h1&gt;

&lt;p&gt;This is where many beginners get confused.&lt;/p&gt;

&lt;p&gt;Consider:&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="nf"&gt;setTimeout&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="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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello&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="mi"&gt;2000&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;World&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;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;World
Hello
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If JavaScript is single-threaded, how is this possible?&lt;/p&gt;

&lt;p&gt;The answer is:&lt;/p&gt;

&lt;p&gt;JavaScript itself is single-threaded, but the browser provides additional features.&lt;/p&gt;




&lt;h1&gt;
  
  
  Behind the Scenes
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser Process
│
├── JavaScript Thread
├── Timer Thread
├── Rendering Thread
├── Network Thread
└── Other Threads
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When JavaScript encounters:&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="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(...)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it hands the timer work to the browser.&lt;/p&gt;

&lt;p&gt;The browser waits 2 seconds and later tells JavaScript:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Timer completed. Execute this callback."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;JavaScript then runs the callback when the Call Stack becomes empty.&lt;/p&gt;




&lt;p&gt;JavaScript is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Single-Threaded
+
Non-Blocking
+
Event Driven
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It achieves asynchronous behavior using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Event Loop&lt;/li&gt;
&lt;li&gt;Callback Queue&lt;/li&gt;
&lt;li&gt;Web APIs&lt;/li&gt;
&lt;li&gt;Promises&lt;/li&gt;
&lt;li&gt;Async/Await&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Reference:&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/javascript/why-javascript-is-a-single-thread-language-that-can-be-non-blocking/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/javascript/why-javascript-is-a-single-thread-language-that-can-be-non-blocking/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/operating-systems/difference-between-process-and-thread/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/operating-systems/difference-between-process-and-thread/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/javascript/difference-between-var-and-let-in-javascript/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/javascript/difference-between-var-and-let-in-javascript/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>JavaScript Functions Explained</title>
      <dc:creator>Saravanan Lakshmanan</dc:creator>
      <pubDate>Sat, 13 Jun 2026 11:07:50 +0000</pubDate>
      <link>https://dev.to/dev_saravanan_journey/javascript-functions-explained-1706</link>
      <guid>https://dev.to/dev_saravanan_journey/javascript-functions-explained-1706</guid>
      <description>&lt;p&gt;I'm currently learning JavaScript and recently spent some time understanding functions. While studying, I created these notes covering function declarations, parameters, arguments, return statements, function expressions, arrow functions, and commonly used built-in methods. Sharing them here in case they help fellow beginners on their JavaScript journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Function?
&lt;/h2&gt;

&lt;p&gt;A function is a reusable block of code designed to perform a specific task.&lt;/p&gt;

&lt;p&gt;Think of a function like a machine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You give some input.&lt;/li&gt;
&lt;li&gt;The machine processes it.&lt;/li&gt;
&lt;li&gt;It gives back an output.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, a calculator's addition operation behaves like a function:&lt;/p&gt;

&lt;p&gt;10 + 20 = 30&lt;/p&gt;

&lt;p&gt;In JavaScript:&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&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;p&gt;Here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a and b are inputs.&lt;/li&gt;
&lt;li&gt;The function performs addition.&lt;/li&gt;
&lt;li&gt;The result is returned.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Functions help us avoid writing the same code repeatedly.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Do We Need Functions?
&lt;/h2&gt;

&lt;p&gt;Imagine you need to display a welcome message 100 times.&lt;/p&gt;

&lt;p&gt;Without functions:&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;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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Welcome&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Welcome&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Welcome&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Welcome&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;p&gt;This quickly becomes difficult to maintain.&lt;/p&gt;

&lt;p&gt;With a function:&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;welcome&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Welcome&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="nf"&gt;welcome&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nf"&gt;welcome&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nf"&gt;welcome&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Less code&lt;/li&gt;
&lt;li&gt;Better readability&lt;/li&gt;
&lt;li&gt;Easier maintenance&lt;/li&gt;
&lt;li&gt;Improved reusability&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Real-Life Example
&lt;/h2&gt;

&lt;p&gt;Suppose you're building an e-commerce application.&lt;/p&gt;

&lt;p&gt;Every time a customer places an order, you may need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Calculate total price&lt;/li&gt;
&lt;li&gt;Apply discounts&lt;/li&gt;
&lt;li&gt;Calculate taxes&lt;/li&gt;
&lt;li&gt;Generate invoices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of writing the same logic repeatedly, you can create functions:&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="nf"&gt;calculateTotal&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nf"&gt;applyDiscount&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nf"&gt;calculateTax&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nf"&gt;generateInvoice&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Functions make large applications easier to organize and maintain.&lt;/p&gt;




&lt;h2&gt;
  
  
  Rules for Naming Functions
&lt;/h2&gt;

&lt;p&gt;A function name should clearly describe what the function does.&lt;/p&gt;

&lt;h3&gt;
  
  
  Good Examples
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;calculateSalary&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getUserData&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;printInvoice&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;findLargestNumber&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;h3&gt;
  
  
  Poor Examples
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;a&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;xyz&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;temp&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;h3&gt;
  
  
  Naming Rules
&lt;/h3&gt;

&lt;p&gt;A function name:&lt;/p&gt;

&lt;p&gt;✔ Can contain letters&lt;/p&gt;

&lt;p&gt;✔ Can contain numbers (but not at the beginning)&lt;/p&gt;

&lt;p&gt;✔ Can contain _ and $&lt;/p&gt;

&lt;p&gt;✔ Should start with a letter&lt;/p&gt;

&lt;h3&gt;
  
  
  Valid Names
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;add123&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;user_data&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;$calculate&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;h3&gt;
  
  
  Invalid Names
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="mi"&gt;123&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;my&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nf"&gt;name&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;function&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;h2&gt;
  
  
  Anatomy of a Function
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&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;p&gt;Function Keyword:&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="kd"&gt;function&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tells JavaScript you're creating a function.&lt;/p&gt;

&lt;p&gt;Function Name:&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;add&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Used to call the function.&lt;/p&gt;

&lt;p&gt;Parameters:&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="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inputs accepted by the function.&lt;/p&gt;

&lt;p&gt;Function Body:&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="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&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;p&gt;Contains the logic that gets executed.&lt;/p&gt;




&lt;h2&gt;
  
  
  Calling a Function
&lt;/h2&gt;

&lt;p&gt;Creating a function does not execute it.&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;greet&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nothing happens until you call it:&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="nf"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This process is called function invocation or function calling.&lt;/p&gt;




&lt;h2&gt;
  
  
  Parameters vs Arguments
&lt;/h2&gt;

&lt;p&gt;This is a common source of confusion for beginners.&lt;/p&gt;

&lt;h3&gt;
  
  
  Parameters
&lt;/h3&gt;

&lt;p&gt;Variables declared in the function definition.&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here a and b are parameters.&lt;/p&gt;

&lt;h3&gt;
  
  
  Arguments
&lt;/h3&gt;

&lt;p&gt;Actual values passed when calling the function.&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="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here 10 and 20 are arguments.&lt;/p&gt;

&lt;p&gt;Easy way to remember:&lt;/p&gt;

&lt;p&gt;Parameters = Placeholders&lt;/p&gt;

&lt;p&gt;Arguments = Actual Values&lt;/p&gt;




&lt;h2&gt;
  
  
  Is return Mandatory?
&lt;/h2&gt;

&lt;p&gt;No.&lt;/p&gt;

&lt;p&gt;A function can work without a return statement.&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;greet&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This function simply prints output and does not return anything.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Does return Do?
&lt;/h2&gt;

&lt;p&gt;The return keyword sends a value back to the place where the function was called.&lt;/p&gt;

&lt;p&gt;Example:&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Internally, JavaScript treats it like:&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;because:&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="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;returns:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;30
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Difference Between console.log() and return
&lt;/h2&gt;

&lt;p&gt;Many beginners assume they serve the same purpose.&lt;/p&gt;

&lt;p&gt;They do not.&lt;/p&gt;

&lt;h3&gt;
  
  
  console.log()
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&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;p&gt;Purpose:&lt;/p&gt;

&lt;p&gt;Display information in the console.&lt;/p&gt;

&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;30
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, the value cannot easily be reused.&lt;/p&gt;

&lt;h3&gt;
  
  
  return
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&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;p&gt;Purpose:&lt;/p&gt;

&lt;p&gt;Send a value back to the caller.&lt;/p&gt;

&lt;p&gt;Now the value can be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stored in a variable&lt;/li&gt;
&lt;li&gt;Reused later&lt;/li&gt;
&lt;li&gt;Passed to another function&lt;/li&gt;
&lt;li&gt;Sent to a database&lt;/li&gt;
&lt;li&gt;Displayed in the UI&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why is return Preferred?
&lt;/h2&gt;

&lt;p&gt;Using console.log():&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&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;p&gt;The value is displayed, but not reusable.&lt;/p&gt;

&lt;p&gt;Using return:&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&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;total&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;60
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This flexibility is why professional developers use return extensively.&lt;/p&gt;




&lt;h2&gt;
  
  
  Function Declaration
&lt;/h2&gt;

&lt;p&gt;Traditional way of creating functions.&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="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&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;h2&gt;
  
  
  Function Expression
&lt;/h2&gt;

&lt;p&gt;A function stored in a variable.&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;add&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&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;h2&gt;
  
  
  Arrow Function
&lt;/h2&gt;

&lt;p&gt;Modern syntax introduced in ES6.&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;add&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&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;return&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&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;p&gt;Short version:&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;add&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Arrow functions are widely used in modern JavaScript frameworks like React.&lt;/p&gt;




&lt;h2&gt;
  
  
  Advantages of Functions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Reusability
&lt;/h3&gt;

&lt;p&gt;Write code once and use it many times.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Better Readability
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;calculateTax&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nf"&gt;generateInvoice&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nf"&gt;sendEmail&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code explains itself.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Easier Maintenance
&lt;/h3&gt;

&lt;p&gt;If a bug exists, you only need to fix it in one place.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Modularity
&lt;/h3&gt;

&lt;p&gt;Large applications can be broken into smaller, manageable pieces.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Easier Testing
&lt;/h3&gt;

&lt;p&gt;Individual functions can be tested independently.&lt;/p&gt;




&lt;h2&gt;
  
  
  Commonly Used Built-In Functions and Methods
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Output
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Number Conversion
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nc"&gt;Number&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;parseInt&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;parseFloat&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  String Methods
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;toUpperCase&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;trim&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Array Methods
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;shift&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;unshift&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;reduce&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Math Methods
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;max&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;min&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;random&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ceil&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;round&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Timer Functions
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;setInterval&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are frequently used in real-world applications.&lt;/p&gt;




&lt;p&gt;References:&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/javascript/functions-in-javascript/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/javascript/functions-in-javascript/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.w3schools.com/js/js_functions.asp" rel="noopener noreferrer"&gt;https://www.w3schools.com/js/js_functions.asp&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>JavaScript Loops</title>
      <dc:creator>Saravanan Lakshmanan</dc:creator>
      <pubDate>Wed, 10 Jun 2026 13:33:41 +0000</pubDate>
      <link>https://dev.to/dev_saravanan_journey/javascript-loops-31lh</link>
      <guid>https://dev.to/dev_saravanan_journey/javascript-loops-31lh</guid>
      <description>&lt;p&gt;&lt;strong&gt;JavaScript Loops&lt;/strong&gt;&lt;br&gt;
Loops are handy, if you want to run the same code over and over again, each time with a different value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The For Loop&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The for statement creates a loop with 3 optional expressions:&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="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;expr1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;expr2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;expr3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// code block to be executed&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;exp1 is executed one time before the execution of the code block.&lt;/p&gt;

&lt;p&gt;exp2 defines the condition for executing the code block.&lt;/p&gt;

&lt;p&gt;exp3 is executed every time the code block has been executed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&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="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&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;text&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;The number is &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;br&amp;gt;&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;exp1 sets a variable before the loop starts (let i = 0).&lt;/p&gt;

&lt;p&gt;exp2 defines the condition for the loop to run (i must be less than 5).&lt;/p&gt;

&lt;p&gt;exp3 increases a value (i++) each time the code block has been executed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Loop Scope&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// some code&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Here i is 10 &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Example&lt;/strong&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// some code&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Here i is 5 &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the first example, let i = 5; is declared outside the loop.&lt;/p&gt;

&lt;p&gt;In the second example, let i = 0;, is declared inside the loop.&lt;/p&gt;

&lt;p&gt;When a variable is declared with let or const inside a loop, it will only be visible within the loop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The While Loop&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The while loop loops through a block of code as long as a specified condition is true.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax&lt;/strong&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="k"&gt;while &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;condition&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// code block to be executed&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the following example, the code in the loop will run, over and over again, as long as a variable (i) is less than 10:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&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="k"&gt;while &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;The number is &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&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;p&gt;&lt;strong&gt;The Do While Loop&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The do while loop is a variant of the while loop.&lt;/p&gt;

&lt;p&gt;The do while loop will execute the code block once, before checking if the condition is true, then it will repeat the loop as long as the condition is true.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax&lt;/strong&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="k"&gt;do&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// code block to be executed&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;while &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;condition&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The do while runs at least once, even if the condition is false from the start.&lt;/p&gt;

&lt;p&gt;This is because the code block is executed before the condition is tested:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&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="k"&gt;do&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;The number is &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;while &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Do not forget to increase the variable used in the condition, otherwise the loop will never end!&lt;/p&gt;

&lt;p&gt;References:&lt;br&gt;
&lt;a href="https://www.w3schools.com/js/js_loops.asp" rel="noopener noreferrer"&gt;https://www.w3schools.com/js/js_loops.asp&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/javascript/loops-in-javascript/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/javascript/loops-in-javascript/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Loops_and_iteration" rel="noopener noreferrer"&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Loops_and_iteration&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>frontend</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>JavaScript practice problems using while loop</title>
      <dc:creator>Saravanan Lakshmanan</dc:creator>
      <pubDate>Tue, 09 Jun 2026 16:16:21 +0000</pubDate>
      <link>https://dev.to/dev_saravanan_journey/javascript-practice-problems-using-while-loop-38l7</link>
      <guid>https://dev.to/dev_saravanan_journey/javascript-practice-problems-using-while-loop-38l7</guid>
      <description>&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;I have practiced a few JavaScript looping concept programs and would like to share them with the community. Please let me know if you find any corrections or suggestions for improvement.&lt;/p&gt;

&lt;p&gt;Thank you!&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.amazonaws.com%2Fuploads%2Farticles%2Ftiltuvzudadupn2w33u6.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2Ftiltuvzudadupn2w33u6.jpg" alt=" " width="752" height="1280"&gt;&lt;/a&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Frym9tdb21mzo8nqrwv3q.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2Frym9tdb21mzo8nqrwv3q.jpg" alt=" " width="800" height="1222"&gt;&lt;/a&gt;&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.amazonaws.com%2Fuploads%2Farticles%2F0i8dvc9er4focb8glf6y.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2F0i8dvc9er4focb8glf6y.jpg" alt=" " width="782" height="1280"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>code</category>
      <category>coding</category>
    </item>
    <item>
      <title>JavaScript week-1 Mock Questions with Answers</title>
      <dc:creator>Saravanan Lakshmanan</dc:creator>
      <pubDate>Mon, 08 Jun 2026 10:16:09 +0000</pubDate>
      <link>https://dev.to/dev_saravanan_journey/javascript-week-1-mock-questions-with-answers-3l9g</link>
      <guid>https://dev.to/dev_saravanan_journey/javascript-week-1-mock-questions-with-answers-3l9g</guid>
      <description>&lt;h2&gt;
  
  
  1️⃣ Tell me about yourself.
&lt;/h2&gt;

&lt;p&gt;💡 Tip: Prepare a 1–2 minute introduction covering:&lt;br&gt;
• Name&lt;br&gt;
• Education&lt;br&gt;
• Skills/Technologies&lt;br&gt;
• Projects&lt;br&gt;
• Experience (if any)&lt;br&gt;
• Career Goal&lt;/p&gt;




&lt;h2&gt;
  
  
  2️⃣ Display: none vs Visibility: hidden
&lt;/h2&gt;

&lt;p&gt;Both properties are used to hide elements, but they behave differently.&lt;/p&gt;

&lt;h3&gt;
  
  
  display: none
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Completely removes the element from the page.&lt;/li&gt;
&lt;li&gt;The element is not visible.&lt;/li&gt;
&lt;li&gt;The element does not occupy any space.&lt;/li&gt;
&lt;li&gt;Other elements move up and take its place.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;display: none&lt;/p&gt;

&lt;p&gt;Before:&lt;br&gt;
A B C&lt;/p&gt;

&lt;p&gt;After hiding B:&lt;br&gt;
A C&lt;/p&gt;

&lt;h3&gt;
  
  
  visibility: hidden
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Hides the element from view.&lt;/li&gt;
&lt;li&gt;The element still occupies space.&lt;/li&gt;
&lt;li&gt;Other elements do not move.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;visibility: hidden&lt;/p&gt;

&lt;p&gt;Before:&lt;br&gt;
A B C&lt;/p&gt;

&lt;p&gt;After hiding B:&lt;br&gt;
A _ C&lt;/p&gt;

&lt;h3&gt;
  
  
  Quick Difference
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;display:none&lt;/th&gt;
&lt;th&gt;visibility:hidden&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Removes element completely&lt;/td&gt;
&lt;td&gt;Only hides element&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No space occupied&lt;/td&gt;
&lt;td&gt;Space remains&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Layout changes&lt;/td&gt;
&lt;td&gt;Layout remains same&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  3️⃣ px vs % vs em vs rem
&lt;/h2&gt;

&lt;p&gt;These are commonly used CSS units for sizing.&lt;/p&gt;

&lt;h3&gt;
  
  
  px (Pixels)
&lt;/h3&gt;

&lt;p&gt;A fixed unit of measurement.&lt;/p&gt;

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

&lt;p&gt;font-size: 16px;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always remains 16 pixels.&lt;/li&gt;
&lt;li&gt;Not affected by parent element size.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  % (Percentage)
&lt;/h3&gt;

&lt;p&gt;Relative to the parent element.&lt;/p&gt;

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

&lt;p&gt;width: 50%;&lt;/p&gt;

&lt;p&gt;If parent width is 1000px:&lt;/p&gt;

&lt;p&gt;Result = 500px&lt;/p&gt;

&lt;h3&gt;
  
  
  em
&lt;/h3&gt;

&lt;p&gt;Relative to the font size of the parent element.&lt;/p&gt;

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

&lt;p&gt;Parent font-size = 16px&lt;/p&gt;

&lt;p&gt;font-size: 2em;&lt;/p&gt;

&lt;p&gt;Result:&lt;/p&gt;

&lt;p&gt;32px&lt;/p&gt;

&lt;h3&gt;
  
  
  rem
&lt;/h3&gt;

&lt;p&gt;Relative to the root (html) font size.&lt;/p&gt;

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

&lt;p&gt;html {&lt;br&gt;
font-size: 16px;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;font-size: 2rem;&lt;/p&gt;

&lt;p&gt;Result:&lt;/p&gt;

&lt;p&gt;32px&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;px → Fixed size&lt;/li&gt;
&lt;li&gt;% → Relative to parent&lt;/li&gt;
&lt;li&gt;em → Relative to parent font size&lt;/li&gt;
&lt;li&gt;rem → Relative to root font size&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Interview Tip
&lt;/h3&gt;

&lt;p&gt;For responsive websites, rem is generally preferred because it provides consistent sizing across the application.&lt;/p&gt;




&lt;h2&gt;
  
  
  4️⃣ Optional Chaining (?.) Operator
&lt;/h2&gt;

&lt;p&gt;Optional Chaining allows us to safely access nested object properties without throwing an error if a property doesn't exist.&lt;/p&gt;

&lt;h3&gt;
  
  
  Without Optional Chaining
&lt;/h3&gt;

&lt;p&gt;const user = {&lt;br&gt;
name: "John"&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;console.log(user.address.city);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;Error: Cannot read properties of undefined&lt;/p&gt;

&lt;p&gt;Reason:&lt;br&gt;
address does not exist, so JavaScript throws an error.&lt;/p&gt;

&lt;h3&gt;
  
  
  With Optional Chaining
&lt;/h3&gt;

&lt;p&gt;const user = {&lt;br&gt;
name: "John"&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;console.log(user?.address?.city);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;undefined&lt;/p&gt;

&lt;p&gt;Instead of throwing an error, JavaScript safely returns undefined.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benefits
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Prevents application crashes.&lt;/li&gt;
&lt;li&gt;Makes code cleaner.&lt;/li&gt;
&lt;li&gt;Reduces multiple if conditions.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5️⃣ Bitwise Operators in JavaScript
&lt;/h2&gt;

&lt;p&gt;Bitwise operators work directly on binary numbers (0 and 1).&lt;/p&gt;

&lt;h3&gt;
  
  
  AND (&amp;amp;)
&lt;/h3&gt;

&lt;p&gt;Returns 1 only when both bits are 1.&lt;/p&gt;

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

&lt;p&gt;5 &amp;amp; 1&lt;/p&gt;

&lt;p&gt;Binary:&lt;/p&gt;

&lt;p&gt;5 = 101&lt;br&gt;
1 = 001&lt;/p&gt;

&lt;p&gt;Result:&lt;/p&gt;

&lt;p&gt;001 = 1&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;1&lt;/p&gt;

&lt;h3&gt;
  
  
  OR (|)
&lt;/h3&gt;

&lt;p&gt;Returns 1 if either bit is 1.&lt;/p&gt;

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

&lt;p&gt;5 | 1&lt;/p&gt;

&lt;p&gt;Binary:&lt;/p&gt;

&lt;p&gt;101&lt;br&gt;
001&lt;/p&gt;

&lt;p&gt;Result:&lt;/p&gt;

&lt;p&gt;101 = 5&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;5&lt;/p&gt;

&lt;h3&gt;
  
  
  XOR (^)
&lt;/h3&gt;

&lt;p&gt;Returns 1 only when bits are different.&lt;/p&gt;

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

&lt;p&gt;5 ^ 1&lt;/p&gt;

&lt;p&gt;Binary:&lt;/p&gt;

&lt;p&gt;101&lt;br&gt;
001&lt;/p&gt;

&lt;p&gt;Result:&lt;/p&gt;

&lt;p&gt;100 = 4&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;4&lt;/p&gt;

&lt;h3&gt;
  
  
  NOT (~)
&lt;/h3&gt;

&lt;p&gt;Flips all bits.&lt;/p&gt;

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

&lt;p&gt;~5&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;-6&lt;/p&gt;

&lt;h3&gt;
  
  
  Common Bitwise Operators
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&amp;amp;  (AND)&lt;/li&gt;
&lt;li&gt;|  (OR)&lt;/li&gt;
&lt;li&gt;^  (XOR)&lt;/li&gt;
&lt;li&gt;~  (NOT)&lt;/li&gt;
&lt;li&gt;&amp;lt;&amp;lt; (Left Shift)&lt;/li&gt;
&lt;li&gt;&amp;gt; &amp;gt; (Right Shift)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Interview Tip
&lt;/h3&gt;

&lt;p&gt;Bitwise operators are commonly used in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flags and permissions&lt;/li&gt;
&lt;li&gt;Low-level programming&lt;/li&gt;
&lt;li&gt;Performance optimizations&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  6️⃣ Type Casting
&lt;/h2&gt;

&lt;p&gt;Type Casting means converting one data type into another.&lt;/p&gt;

&lt;h3&gt;
  
  
  Implicit Type Casting
&lt;/h3&gt;

&lt;p&gt;JavaScript automatically converts the type.&lt;/p&gt;

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

&lt;p&gt;console.log("5" + 2);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;52&lt;/p&gt;

&lt;p&gt;Reason:&lt;/p&gt;

&lt;p&gt;Number 2 is automatically converted to string.&lt;/p&gt;

&lt;h3&gt;
  
  
  Explicit Type Casting
&lt;/h3&gt;

&lt;p&gt;Developer manually converts the type.&lt;/p&gt;

&lt;h3&gt;
  
  
  String to Number
&lt;/h3&gt;

&lt;p&gt;Number("10")&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;10&lt;/p&gt;

&lt;h3&gt;
  
  
  Number to String
&lt;/h3&gt;

&lt;p&gt;String(100)&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;"100"&lt;/p&gt;

&lt;h3&gt;
  
  
  Number to Boolean
&lt;/h3&gt;

&lt;p&gt;Boolean(1)&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;true&lt;/p&gt;

&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;p&gt;let age = "25";&lt;/p&gt;

&lt;p&gt;console.log(Number(age));&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;25&lt;/p&gt;

&lt;h3&gt;
  
  
  Interview Tip
&lt;/h3&gt;

&lt;p&gt;JavaScript is loosely typed, so automatic type conversion happens frequently.&lt;/p&gt;




&lt;h2&gt;
  
  
  7️⃣ Truthy &amp;amp; Falsy Values
&lt;/h2&gt;

&lt;p&gt;When JavaScript evaluates a condition, values are treated as either Truthy or Falsy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Falsy Values
&lt;/h3&gt;

&lt;p&gt;There are only 8 Falsy values in JavaScript:&lt;/p&gt;

&lt;p&gt;false&lt;br&gt;
0&lt;br&gt;
-0&lt;br&gt;
0n&lt;br&gt;
""&lt;br&gt;
null&lt;br&gt;
undefined&lt;br&gt;
NaN&lt;/p&gt;

&lt;h3&gt;
  
  
  Truthy Values
&lt;/h3&gt;

&lt;p&gt;Everything else is Truthy.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;p&gt;"Hello"&lt;br&gt;
1&lt;br&gt;
[]&lt;br&gt;
{}&lt;br&gt;
true&lt;br&gt;
"false"&lt;/p&gt;

&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;p&gt;if ("Hello") {&lt;br&gt;
console.log("Truthy");&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;Truthy&lt;/p&gt;

&lt;h3&gt;
  
  
  Important Interview Question
&lt;/h3&gt;

&lt;p&gt;Is an empty array truthy or falsy?&lt;/p&gt;

&lt;p&gt;Answer:&lt;/p&gt;

&lt;p&gt;Truthy ✅&lt;/p&gt;

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

&lt;p&gt;if ([]) {&lt;br&gt;
console.log("Truthy");&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;Truthy&lt;/p&gt;




&lt;h2&gt;
  
  
  8️⃣ var vs let vs const
&lt;/h2&gt;

&lt;p&gt;These are used to declare variables.&lt;/p&gt;

&lt;h3&gt;
  
  
  var
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Function scoped&lt;/li&gt;
&lt;li&gt;Can be redeclared&lt;/li&gt;
&lt;li&gt;Can be reassigned&lt;/li&gt;
&lt;li&gt;Hoisted&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;var a = 10;&lt;br&gt;
var a = 20;&lt;/p&gt;

&lt;p&gt;Allowed ✅&lt;/p&gt;

&lt;h3&gt;
  
  
  let
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Block scoped&lt;/li&gt;
&lt;li&gt;Cannot be redeclared&lt;/li&gt;
&lt;li&gt;Can be reassigned&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;let age = 25;&lt;br&gt;
age = 30;&lt;/p&gt;

&lt;p&gt;Allowed ✅&lt;/p&gt;

&lt;h3&gt;
  
  
  const
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Block scoped&lt;/li&gt;
&lt;li&gt;Cannot be redeclared&lt;/li&gt;
&lt;li&gt;Cannot be reassigned&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;const pi = 3.14;&lt;/p&gt;

&lt;p&gt;pi = 3.141;&lt;/p&gt;

&lt;p&gt;Error ❌&lt;/p&gt;

&lt;h3&gt;
  
  
  Quick Comparison
&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;var&lt;/th&gt;
&lt;th&gt;let&lt;/th&gt;
&lt;th&gt;const&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Scope&lt;/td&gt;
&lt;td&gt;Function&lt;/td&gt;
&lt;td&gt;Block&lt;/td&gt;
&lt;td&gt;Block&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redeclare&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reassign&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hoisted&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Best Practice
&lt;/h3&gt;

&lt;p&gt;Use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;const by default&lt;/li&gt;
&lt;li&gt;let when value changes&lt;/li&gt;
&lt;li&gt;Avoid var&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  9️⃣ What is JavaScript?
&lt;/h2&gt;

&lt;p&gt;JavaScript is a high-level, interpreted, lightweight programming language used to create dynamic and interactive web pages.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why JavaScript?
&lt;/h3&gt;

&lt;p&gt;HTML → Structure&lt;/p&gt;

&lt;p&gt;CSS → Styling&lt;/p&gt;

&lt;p&gt;JavaScript → Functionality&lt;/p&gt;

&lt;h3&gt;
  
  
  Common Uses
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Form Validation&lt;/li&gt;
&lt;li&gt;Dark Mode&lt;/li&gt;
&lt;li&gt;Image Sliders&lt;/li&gt;
&lt;li&gt;API Calls&lt;/li&gt;
&lt;li&gt;Dynamic Content Updates&lt;/li&gt;
&lt;li&gt;Games&lt;/li&gt;
&lt;li&gt;Real-Time Chat Applications&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;p&gt;Button click event:&lt;/p&gt;

&lt;p&gt;document.getElementById("btn").addEventListener("click", () =&amp;gt; {&lt;br&gt;
alert("Button Clicked");&lt;br&gt;
});&lt;/p&gt;

&lt;h3&gt;
  
  
  Where JavaScript Runs?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Browser&lt;/li&gt;
&lt;li&gt;Server-side using Node.js&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Interview Definition
&lt;/h3&gt;

&lt;p&gt;JavaScript is a high-level, interpreted programming language used to make websites interactive and dynamic.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔟 Mutable vs Immutable Data
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Mutable
&lt;/h3&gt;

&lt;p&gt;A mutable object can be modified after creation.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Array&lt;/li&gt;
&lt;li&gt;Object&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;let arr = [1, 2, 3];&lt;/p&gt;

&lt;p&gt;arr.push(4);&lt;/p&gt;

&lt;p&gt;console.log(arr);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;[1, 2, 3, 4]&lt;/p&gt;

&lt;p&gt;The original array was modified.&lt;/p&gt;

&lt;h3&gt;
  
  
  Immutable
&lt;/h3&gt;

&lt;p&gt;An immutable value cannot be modified after creation.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;String&lt;/li&gt;
&lt;li&gt;Number&lt;/li&gt;
&lt;li&gt;Boolean&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;let str = "Hello";&lt;/p&gt;

&lt;p&gt;str[0] = "Y";&lt;/p&gt;

&lt;p&gt;console.log(str);&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;Hello&lt;/p&gt;

&lt;p&gt;Reason:&lt;/p&gt;

&lt;p&gt;Strings are immutable in JavaScript.&lt;/p&gt;

&lt;h3&gt;
  
  
  Another Example
&lt;/h3&gt;

&lt;p&gt;let num = 10;&lt;/p&gt;

&lt;p&gt;num = 20;&lt;/p&gt;

&lt;p&gt;This creates a new value rather than modifying the original value.&lt;/p&gt;

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

&lt;p&gt;Mutable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Array&lt;/li&gt;
&lt;li&gt;Object&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Immutable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;String&lt;/li&gt;
&lt;li&gt;Number&lt;/li&gt;
&lt;li&gt;Boolean&lt;/li&gt;
&lt;li&gt;Null&lt;/li&gt;
&lt;li&gt;Undefined&lt;/li&gt;
&lt;li&gt;Symbol&lt;/li&gt;
&lt;li&gt;BigInt&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Interview Tip
&lt;/h3&gt;

&lt;p&gt;Primitive data types are immutable, while Objects and Arrays are mutable because their contents can be changed after creation.&lt;/p&gt;

</description>
      <category>interview</category>
      <category>javascript</category>
      <category>career</category>
      <category>html</category>
    </item>
    <item>
      <title>Why if([]) Returns True? Understanding Truthy &amp; Falsy in JavaScript</title>
      <dc:creator>Saravanan Lakshmanan</dc:creator>
      <pubDate>Sun, 07 Jun 2026 15:08:23 +0000</pubDate>
      <link>https://dev.to/dev_saravanan_journey/why-if-returns-true-understanding-truthy-falsy-in-javascript-2i0o</link>
      <guid>https://dev.to/dev_saravanan_journey/why-if-returns-true-understanding-truthy-falsy-in-javascript-2i0o</guid>
      <description>&lt;h2&gt;
  
  
  What are Truthy and Falsy Values?
&lt;/h2&gt;

&lt;p&gt;In JavaScript, every value can be treated as either &lt;strong&gt;true&lt;/strong&gt; or &lt;strong&gt;false&lt;/strong&gt; when used in a condition (&lt;code&gt;if&lt;/code&gt;, &lt;code&gt;while&lt;/code&gt;, ternary operator, etc.).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Truthy&lt;/strong&gt; values behave like &lt;code&gt;true&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Falsy&lt;/strong&gt; values behave like &lt;code&gt;false&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;JavaScript automatically converts values to a boolean when evaluating conditions. This process is called &lt;strong&gt;Type Coercion&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Falsy Values
&lt;/h2&gt;

&lt;p&gt;There are only a few falsy values in JavaScript:&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="kc"&gt;false&lt;/span&gt;
&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;
&lt;span class="dl"&gt;""&lt;/span&gt;      &lt;span class="c1"&gt;// Empty string&lt;/span&gt;
&lt;span class="kc"&gt;null&lt;/span&gt;
&lt;span class="kc"&gt;undefined&lt;/span&gt;
&lt;span class="kc"&gt;NaN&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;This will run&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="k"&gt;else&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0 is falsy&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;0 is falsy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Truthy Values
&lt;/h2&gt;

&lt;p&gt;Everything that is not falsy is truthy.&lt;/p&gt;

&lt;p&gt;Examples:&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="kc"&gt;true&lt;/span&gt;
&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;0&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="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;JavaScript&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;String is truthy&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;String is truthy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Common Interview Examples
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Example 1: Non-empty String
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;username&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Saravanan&lt;/span&gt;&lt;span class="dl"&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;username&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Username exists&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Username exists
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Because a non-empty string is truthy.&lt;/p&gt;




&lt;h3&gt;
  
  
  Example 2: Empty String
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;username&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&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;username&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Username exists&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="k"&gt;else&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Username is empty&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Username is empty
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Because an empty string is falsy.&lt;/p&gt;




&lt;h3&gt;
  
  
  Example 3: Checking Login Credentials
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;username&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Saravanan&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;password&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1234&lt;/span&gt;&lt;span class="dl"&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;username&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;password&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Login data available&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="k"&gt;else&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Missing credentials&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Login data available
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both values are non-empty strings, so they are truthy.&lt;/p&gt;




&lt;h3&gt;
  
  
  Example 4: Empty Array
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Array is truthy&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Array is truthy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Many beginners expect an empty array to be falsy, but it is truthy.&lt;/p&gt;




&lt;h3&gt;
  
  
  Example 5: Empty Object
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Object is truthy&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Object is truthy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An empty object is also truthy.&lt;/p&gt;




&lt;h2&gt;
  
  
  Quick Reference Table
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;th&gt;Truthy/Falsy&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Falsy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Falsy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;""&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Falsy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;null&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Falsy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;undefined&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Falsy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;NaN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Falsy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Truthy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"hello"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Truthy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;"0"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Truthy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;[]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Truthy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;{}&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Truthy&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Easy Rule to Remember
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;JavaScript has only a handful of falsy values. Everything else is truthy.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When in doubt, ask yourself:&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="nc"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Examples:&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="nc"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;        &lt;span class="c1"&gt;// false&lt;/span&gt;
&lt;span class="nc"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;       &lt;span class="c1"&gt;// false&lt;/span&gt;
&lt;span class="nc"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// true&lt;/span&gt;
&lt;span class="nc"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;([]);&lt;/span&gt;       &lt;span class="c1"&gt;// true&lt;/span&gt;
&lt;span class="nc"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;({});&lt;/span&gt;       &lt;span class="c1"&gt;// true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Understanding truthy and falsy values is essential because they are used extensively in conditions, loops, logical operators (&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;, &lt;code&gt;||&lt;/code&gt;), and real-world application development.&lt;/p&gt;

&lt;p&gt;References:&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/javascript/explain-the-concept-of-truthy-falsy-values-in-javascript/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/javascript/explain-the-concept-of-truthy-falsy-values-in-javascript/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://stackoverflow.com/questions/35642809/understanding-javascript-truthy-and-falsy" rel="noopener noreferrer"&gt;https://stackoverflow.com/questions/35642809/understanding-javascript-truthy-and-falsy&lt;/a&gt;&lt;br&gt;
&lt;a href="https://frontend.turing.edu/lessons/module-1/js-truthy-falsy-expressions.html" rel="noopener noreferrer"&gt;https://frontend.turing.edu/lessons/module-1/js-truthy-falsy-expressions.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>JavaScript - Conditional Statements</title>
      <dc:creator>Saravanan Lakshmanan</dc:creator>
      <pubDate>Thu, 04 Jun 2026 15:51:01 +0000</pubDate>
      <link>https://dev.to/dev_saravanan_journey/javascript-conditional-statements-4p8d</link>
      <guid>https://dev.to/dev_saravanan_journey/javascript-conditional-statements-4p8d</guid>
      <description>&lt;h1&gt;
  
  
  JavaScript Conditional Statements
&lt;/h1&gt;

&lt;p&gt;Conditional statements allow a program to make decisions and execute different blocks of code based on conditions.&lt;/p&gt;




&lt;h1&gt;
  
  
  1. if Statement
&lt;/h1&gt;

&lt;p&gt;The &lt;code&gt;if&lt;/code&gt; statement executes a block of code only when a condition is true.&lt;/p&gt;

&lt;h3&gt;
  
  
  Syntax
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;condition&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// code to execute&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&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;age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;You are eligible to vote.&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Flowchart
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;     Start
       |
       v
   Condition?
    /      \
 True      False
   |          |
   v          |
 Execute      |
 Code         |
   |          |
   v          |
     End &amp;lt;----
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  When to Use
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;When you want to execute code only if a condition is true.&lt;/li&gt;
&lt;li&gt;No action is needed when the condition is false.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  2. if...else Statement
&lt;/h1&gt;

&lt;p&gt;The &lt;code&gt;if...else&lt;/code&gt; statement provides two possible execution paths.&lt;/p&gt;

&lt;h3&gt;
  
  
  Syntax
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;condition&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// code if true&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// code if false&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;16&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;age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Eligible to vote&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="k"&gt;else&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Not eligible to vote&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Flowchart
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;       Start
         |
         v
     Condition?
      /      \
   True      False
    |           |
    v           v
 Execute A   Execute B
    |           |
    +-----+-----+
          |
          v
         End
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  When to Use
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;When there are exactly two possible outcomes.&lt;/li&gt;
&lt;li&gt;Example: Pass/Fail, Yes/No, Adult/Minor.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  3. else if Statement
&lt;/h1&gt;

&lt;p&gt;Used when multiple conditions need to be checked.&lt;/p&gt;

&lt;h3&gt;
  
  
  Syntax
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;condition1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// code&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&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;condition2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// code&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// code&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;marks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;78&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;marks&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;90&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Grade A&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="k"&gt;else&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;marks&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;75&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Grade B&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="k"&gt;else&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;marks&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;50&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Grade C&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="k"&gt;else&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Fail&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Flowchart
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          Start
            |
            v
      Condition 1?
        /      \
     Yes       No
      |         |
      v         v
  Execute A  Condition 2?
               /    \
            Yes      No
             |        |
             v        v
        Execute B  Condition 3?
                     /     \
                  Yes      No
                   |        |
                   v        v
             Execute C  Execute D
                   |        |
                   +----+---+
                        |
                        v
                       End
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  When to Use
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;When multiple conditions need to be evaluated.&lt;/li&gt;
&lt;li&gt;Example: Grades, Salary Ranges, User Roles.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  4. switch Statement
&lt;/h1&gt;

&lt;p&gt;The &lt;code&gt;switch&lt;/code&gt; statement compares a single value against multiple cases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Syntax
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;switch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;expression&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nx"&gt;value1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;// code&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nx"&gt;value2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;// code&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;default&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;// code&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;day&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;switch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;day&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;1&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Monday&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;2&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Tuesday&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;3&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Wednesday&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;default&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Invalid Day&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Flowchart
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          Start
            |
            v
      Check Value
            |
    +---+---+---+
    |   |   |   |
 Case1 Case2 Case3
    |   |   |   |
    v   v   v   v
 Code Code Code Default
    |   |   |   |
    +---+---+---+
            |
            v
           End
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  When to Use
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;When comparing the same variable against multiple values.&lt;/li&gt;
&lt;li&gt;Cleaner than many &lt;code&gt;else if&lt;/code&gt; statements.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  5. Ternary Operator (?:)
&lt;/h1&gt;

&lt;p&gt;A shorthand version of &lt;code&gt;if...else&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Syntax
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;condition&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;valueIfTrue&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;valueIfFalse&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;
  &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Adult&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="s2"&gt;Minor&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;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Flowchart
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;       Start
         |
         v
     Condition?
      /      \
   True      False
    |           |
    v           v
 Value A     Value B
      \       /
       \     /
        \   /
         \ /
          v
         End
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  When to Use
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;For simple conditions.&lt;/li&gt;
&lt;li&gt;Avoid for complex nested logic.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Summary Table
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Conditional Statement&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;if&lt;/td&gt;
&lt;td&gt;Execute code when a condition is true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;if...else&lt;/td&gt;
&lt;td&gt;Choose between two outcomes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;else if&lt;/td&gt;
&lt;td&gt;Handle multiple conditions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;switch&lt;/td&gt;
&lt;td&gt;Compare one value against multiple cases&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ternary (?:)&lt;/td&gt;
&lt;td&gt;Short form of if...else&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Key Takeaway
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;if&lt;/code&gt; for a single condition.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;if...else&lt;/code&gt; for two outcomes.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;if...else if...else&lt;/code&gt; for multiple conditions.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;switch&lt;/code&gt; when checking many values of the same variable.&lt;/li&gt;
&lt;li&gt;Use the ternary operator for concise one-line decisions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;References:&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/javascript/conditional-statements-in-javascript/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/javascript/conditional-statements-in-javascript/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.w3schools.com/js/js_conditionals.asp" rel="noopener noreferrer"&gt;https://www.w3schools.com/js/js_conditionals.asp&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>JavaScript Operators Explained with Examples</title>
      <dc:creator>Saravanan Lakshmanan</dc:creator>
      <pubDate>Thu, 04 Jun 2026 15:28:01 +0000</pubDate>
      <link>https://dev.to/dev_saravanan_journey/javascript-operators-explained-with-examples-3dfn</link>
      <guid>https://dev.to/dev_saravanan_journey/javascript-operators-explained-with-examples-3dfn</guid>
      <description>&lt;h1&gt;
  
  
  JavaScript Operators
&lt;/h1&gt;

&lt;p&gt;Operators are special symbols used to perform operations on values and variables in JavaScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Arithmetic Operators
&lt;/h2&gt;

&lt;p&gt;Used for mathematical calculations.&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&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;a&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 13&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;a&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 7&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;a&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 30&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;a&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 3.33&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;a&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 1&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;a&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 1000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Common Operators:&lt;/strong&gt; &lt;code&gt;+&lt;/code&gt;, &lt;code&gt;-&lt;/code&gt;, &lt;code&gt;*&lt;/code&gt;, &lt;code&gt;/&lt;/code&gt;, &lt;code&gt;%&lt;/code&gt;, &lt;code&gt;**&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Increment &amp;amp; Decrement Operators
&lt;/h2&gt;

&lt;p&gt;Used to increase or decrease a value by 1.&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&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="o"&gt;++&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 6 (Pre-increment)&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;x&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 6 (Post-increment)&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;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;   &lt;span class="c1"&gt;// 7&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Common Operators:&lt;/strong&gt; &lt;code&gt;++&lt;/code&gt;, &lt;code&gt;--&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Difference:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;++x&lt;/code&gt; → Increment first, then use the value.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;x++&lt;/code&gt; → Use the value first, then increment.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. Assignment Operators
&lt;/h2&gt;

&lt;p&gt;Used to assign or update values.&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// x = 15&lt;/span&gt;
&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// x = 13&lt;/span&gt;
&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// x = 26&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Common Operators:&lt;/strong&gt; &lt;code&gt;=&lt;/code&gt;, &lt;code&gt;+=&lt;/code&gt;, &lt;code&gt;-=&lt;/code&gt;, &lt;code&gt;*=&lt;/code&gt;, &lt;code&gt;/=&lt;/code&gt;, &lt;code&gt;%=&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Comparison Operators
&lt;/h2&gt;

&lt;p&gt;Used to compare two values and return &lt;code&gt;true&lt;/code&gt; or &lt;code&gt;false&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="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="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;     &lt;span class="c1"&gt;// true&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="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;     &lt;span class="c1"&gt;// false&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="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// true&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="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Common Operators:&lt;/strong&gt; &lt;code&gt;==&lt;/code&gt;, &lt;code&gt;===&lt;/code&gt;, &lt;code&gt;!=&lt;/code&gt;, &lt;code&gt;!==&lt;/code&gt;, &lt;code&gt;&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;&lt;/code&gt;, &lt;code&gt;&amp;gt;=&lt;/code&gt;, &lt;code&gt;&amp;lt;=&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Prefer &lt;code&gt;===&lt;/code&gt; over &lt;code&gt;==&lt;/code&gt; to avoid unexpected type conversion.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Logical Operators
&lt;/h2&gt;

&lt;p&gt;Used to combine or invert conditions.&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;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="kc"&gt;true&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// false&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="kc"&gt;true&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// true&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="o"&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;// false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Common Operators:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; (AND)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;||&lt;/code&gt; (OR)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;!&lt;/code&gt; (NOT)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Short-Circuiting:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;A &amp;amp;&amp;amp; B&lt;/code&gt; → Returns &lt;code&gt;B&lt;/code&gt; if &lt;code&gt;A&lt;/code&gt; is truthy.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;A || B&lt;/code&gt; → Returns &lt;code&gt;A&lt;/code&gt; if &lt;code&gt;A&lt;/code&gt; is truthy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&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;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="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 20&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="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  6. Conditional (Ternary) Operator
&lt;/h2&gt;

&lt;p&gt;A shorthand version of &lt;code&gt;if...else&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Adult&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="s2"&gt;Minor&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;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Syntax:&lt;/strong&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="nx"&gt;condition&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;valueIfTrue&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;valueIfFalse&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  7. Nullish Coalescing Operator (??)
&lt;/h2&gt;

&lt;p&gt;Provides a default value only when the left side is &lt;code&gt;null&lt;/code&gt; or &lt;code&gt;undefined&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;username&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&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;username&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Guest&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Guest&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Useful for handling missing values safely.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. Optional Chaining Operator (?.)
&lt;/h2&gt;

&lt;p&gt;Safely accesses object properties without throwing errors.&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="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="kc"&gt;null&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;user&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;// undefined&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Useful when data may be missing.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. Type Operators
&lt;/h2&gt;

&lt;p&gt;Used to check data types or object relationships.&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;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="k"&gt;typeof&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// string&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="k"&gt;typeof&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;     &lt;span class="c1"&gt;// number&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Common Operators:&lt;/strong&gt; &lt;code&gt;typeof&lt;/code&gt;, &lt;code&gt;instanceof&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  10. Bitwise Operators
&lt;/h2&gt;

&lt;p&gt;Perform operations at the binary level.&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;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="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 1&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="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 5&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mostly used in advanced programming scenarios.&lt;/p&gt;




&lt;h2&gt;
  
  
  11. String Operators
&lt;/h2&gt;

&lt;p&gt;Used to combine strings.&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;firstName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;John&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;lastName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Doe&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;firstName&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;lastName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Common Operators:&lt;/strong&gt; &lt;code&gt;+&lt;/code&gt;, &lt;code&gt;+=&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  12. Spread &amp;amp; Rest Operator (...)
&lt;/h2&gt;

&lt;p&gt;A powerful feature for arrays, objects, and function parameters.&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;arr1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;arr2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[...&lt;/span&gt;&lt;span class="nx"&gt;arr1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&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;arr2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Useful for copying, merging, and handling multiple values.&lt;/p&gt;




&lt;p&gt;References:&lt;br&gt;
&lt;a href="https://www.w3schools.com/js/js_operators.asp" rel="noopener noreferrer"&gt;https://www.w3schools.com/js/js_operators.asp&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/javascript/javascript-operators/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/javascript/javascript-operators/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.programiz.com/javascript/operators" rel="noopener noreferrer"&gt;https://www.programiz.com/javascript/operators&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Immutable vs Mutable ||JavaScript Type Conversion</title>
      <dc:creator>Saravanan Lakshmanan</dc:creator>
      <pubDate>Tue, 02 Jun 2026 10:29:16 +0000</pubDate>
      <link>https://dev.to/dev_saravanan_journey/immutable-vs-mutable-javascript-type-conversion-3c03</link>
      <guid>https://dev.to/dev_saravanan_journey/immutable-vs-mutable-javascript-type-conversion-3c03</guid>
      <description>&lt;p&gt;&lt;strong&gt;Immutable vs Mutable (Non-Immutable)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Immutable&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An immutable value cannot be changed after it is created.&lt;/li&gt;
&lt;li&gt;When you modify it, JavaScript creates a new value instead of changing the original one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;let a = "Hello";&lt;br&gt;
a = "Hi";&lt;/code&gt;&lt;br&gt;
What happens?&lt;br&gt;
&lt;code&gt;"Hello"   // old value remains unchanged&lt;br&gt;
"Hi"      // new value is created&lt;/code&gt;&lt;br&gt;
The variable a now points to the new value "Hi".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Immutable Data Types&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;String&lt;/li&gt;
&lt;li&gt;Number&lt;/li&gt;
&lt;li&gt;Boolean&lt;/li&gt;
&lt;li&gt;Null&lt;/li&gt;
&lt;li&gt;Undefined&lt;/li&gt;
&lt;li&gt;Symbol&lt;/li&gt;
&lt;li&gt;BigInt&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Mutable (Non-Immutable)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A mutable value can be changed after it is created.&lt;/li&gt;
&lt;li&gt;Instead of creating a new value, JavaScript modifies the existing object.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br&gt;
`let user = {&lt;br&gt;
  name: "John"&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;user.name = "David";&lt;code&gt;&lt;br&gt;
What happens?&lt;br&gt;
&lt;/code&gt;{&lt;br&gt;
  name: "David"&lt;br&gt;
}`&lt;br&gt;
The same object is updated. No new object is required for this change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mutable Data Types&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Object&lt;/li&gt;
&lt;li&gt;Array&lt;/li&gt;
&lt;li&gt;Function&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quick Comparison&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Immutable&lt;/th&gt;
&lt;th&gt;Mutable&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cannot be changed directly&lt;/td&gt;
&lt;td&gt;Can be changed directly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Modification creates a new value&lt;/td&gt;
&lt;td&gt;Modification updates the existing value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Primitive data types&lt;/td&gt;
&lt;td&gt;Non-primitive data types&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Example: String, Number&lt;/td&gt;
&lt;td&gt;Example: Object, Array&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Easy Memory Trick&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Immutable&lt;/strong&gt; = New value is created when changed&lt;br&gt;
&lt;code&gt;let x = 10;&lt;br&gt;
x = 20;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mutable&lt;/strong&gt; = Existing value is updated&lt;br&gt;
&lt;code&gt;let arr = [1, 2];&lt;br&gt;
arr.push(3);&lt;/code&gt;&lt;br&gt;
x = 20 creates a new value, while arr.push(3) changes the existing array.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;JavaScript Type Conversion&lt;/strong&gt;&lt;br&gt;
In JavaScript Type Conversion can be defined as converting the data type of the variables from one type to the other manually by the programmer(explicitly) or automatically by the JavaScript(implicitly).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;Implicit Type Conversion (Coercion):&lt;/strong&gt; Implicit Type Conversion occurs automatically by the JavaScript.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Explicit Type Conversion:&lt;/strong&gt; Explicit Type Conversion occurs when the programmer manually changes the type of the variables using the function Number(), String(), and Boolean().&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Implicit Type Conversion (Coercion)&lt;/strong&gt;&lt;br&gt;
In JavaScript, the implicit type conversion or coercion conversion can be defined as the automatic conversion of the data type of the variables from one type to another type. Implicit type conversion mostly occurs when we are performing the arithmetic or the logical operations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;String with Number (Concatenation)&lt;/strong&gt;&lt;br&gt;
When we add a string with the number, the JavaScript automatically converts the number into a string and performs string concatenation.&lt;br&gt;
&lt;code&gt;let res = 5 + "5";  &lt;br&gt;
console.log(res);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Boolean to Number&lt;/strong&gt;&lt;br&gt;
When we perform the mathematical operations, then JavaScript automatically converts true to 1 and false to 0.&lt;br&gt;
&lt;code&gt;let res = true + 1;  &lt;br&gt;
console.log(res);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Equality Comparison (==)&lt;/strong&gt;&lt;br&gt;
When we use the equality operator in the JavaScript, it compares them after converting the value into the same data type.&lt;br&gt;
&lt;code&gt;let res = (5 == "5");  &lt;br&gt;
console.log(res);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automatic Conversion in Logical Operations&lt;/strong&gt;&lt;br&gt;
In JavaScript, these values are automatically converts undefined, null, "" (empty string), false, NaN, and 0 to false, and all other values to true.&lt;br&gt;
&lt;code&gt;let res = Boolean("");  &lt;br&gt;
let res2 = Boolean("Hello");  &lt;br&gt;
console.log(res)&lt;br&gt;
console.log(res2)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explicit Type Conversion&lt;/strong&gt;&lt;br&gt;
In JavaScript, explicit type conversion can be defined as when we manually change the data type of the variable from one to other using some built-in JavaScript functions. JavaScript provides us the built-in functions for performing the explicit conversion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Converting to String&lt;/strong&gt;&lt;br&gt;
In JavaScript, we can convert the value into a string using the String() function, toString(), and by concatenating the empty string.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;let n = 123;&lt;br&gt;
let s1 = String(n);  &lt;br&gt;
let s2 = n.toString();  &lt;br&gt;
console.log(s1)&lt;br&gt;
console.log(s2)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Converting to Number&lt;/strong&gt;&lt;br&gt;
In JavaScript, we can convert the value into a number using the Number() function, parseInt(), and parseFloat().&lt;/p&gt;

&lt;p&gt;&lt;code&gt;let s = "123";&lt;br&gt;
let n = Number(s);  &lt;br&gt;
let s1 = "12.34";&lt;br&gt;
let n1 = parseFloat(s1);  &lt;br&gt;
console.log(n)&lt;br&gt;
console.log(n1)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Converting to Boolean&lt;/strong&gt;&lt;br&gt;
In JavaScript, we can convert the value into a boolean we can use the Boolean() function.&lt;br&gt;
&lt;code&gt;let str = "Hello";&lt;br&gt;
let b1 = Boolean(str);  &lt;br&gt;
let emptyStr = "";&lt;br&gt;
let b2 = Boolean(emptyStr);  &lt;br&gt;
console.log(b1)&lt;br&gt;
console.log(b2)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reasons to Learn JavaScript Type Conversion&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data Handling: In JavaScript when we are working with API responses, user inputs and calculations, these type of the operation require type conversion.&lt;/li&gt;
&lt;li&gt;Prevent Bugs: It is important to understand the type conversion which can help in preventing bugs which occurs when JavaScript implicitly converts value.&lt;/li&gt;
&lt;li&gt;Code Clarity: By performing the explicit conversion makes our code bug free and more clear.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;JavaScript Type Conversion&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Conversion Type&lt;/th&gt;
&lt;th&gt;Implicit Conversion (Coercion)&lt;/th&gt;
&lt;th&gt;Explicit Conversion&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;String + Number&lt;/td&gt;
&lt;td&gt;Automatically converts numbers to strings&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;String()&lt;/code&gt; or &lt;code&gt;.toString()&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Number + Boolean&lt;/td&gt;
&lt;td&gt;Converts &lt;code&gt;true&lt;/code&gt; to &lt;code&gt;1&lt;/code&gt; and &lt;code&gt;false&lt;/code&gt; to &lt;code&gt;0&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;Number()&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;String to Boolean&lt;/td&gt;
&lt;td&gt;Non-empty strings become &lt;code&gt;true&lt;/code&gt;, empty strings become &lt;code&gt;false&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;Boolean()&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Number from String&lt;/td&gt;
&lt;td&gt;JavaScript may convert automatically during operations&lt;/td&gt;
&lt;td&gt;Use &lt;code&gt;Number()&lt;/code&gt;, &lt;code&gt;parseInt()&lt;/code&gt;, or &lt;code&gt;parseFloat()&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;References:&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/javascript/javascript-type-conversion/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/javascript/javascript-type-conversion/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.w3schools.com/js/js_type_conversion.asp" rel="noopener noreferrer"&gt;https://www.w3schools.com/js/js_type_conversion.asp&lt;/a&gt;&lt;br&gt;
&lt;a href="https://immutable-js.com/" rel="noopener noreferrer"&gt;https://immutable-js.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/javascript/why-is-immutability-so-important-in-javascript/" rel="noopener noreferrer"&gt;https://www.geeksforgeeks.org/javascript/why-is-immutability-so-important-in-javascript/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typecast</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
