<?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: Sachin Suman</title>
    <description>The latest articles on DEV Community by Sachin Suman (@sachin_suman_210701e85f40).</description>
    <link>https://dev.to/sachin_suman_210701e85f40</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2003278%2Ff943e502-d336-4bee-bb65-354424628cea.png</url>
      <title>DEV Community: Sachin Suman</title>
      <link>https://dev.to/sachin_suman_210701e85f40</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sachin_suman_210701e85f40"/>
    <language>en</language>
    <item>
      <title>🔁 Type Coercion (Auto-Conversion) in JS</title>
      <dc:creator>Sachin Suman</dc:creator>
      <pubDate>Wed, 10 Sep 2025 21:40:01 +0000</pubDate>
      <link>https://dev.to/sachin_suman_210701e85f40/type-coercion-auto-conversion-in-js-4hap</link>
      <guid>https://dev.to/sachin_suman_210701e85f40/type-coercion-auto-conversion-in-js-4hap</guid>
      <description>&lt;p&gt;Basically, type coercion is a concept in which JavaScript auto-converts types in some operations. &lt;br&gt;
Example:&lt;br&gt;
"5" + 1 // "51" → number converted to string&lt;br&gt;
"5" - 1 // 4 → string converted to number&lt;br&gt;
true + 1 // 2&lt;br&gt;
null + 1 // 1&lt;br&gt;
undefined + 1 // NaN&lt;br&gt;
📝 Two Main Types of Coercion&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Implicit Coercion
Happens automatically when JavaScript converts one data type to another during operations.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example:&lt;br&gt;
console.log(1 + '2');   // "12" (number 1 converted to string)&lt;br&gt;
console.log('5' * 2);   // 10  (string '5' converted to number)&lt;br&gt;
console.log(5 == '5');  // true (string '5' converted to number for comparison)&lt;/p&gt;

&lt;p&gt;2.Explicit Coercion&lt;br&gt;
Happens when you intentionally convert a value using built-in functions or operators.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
Number('123');   // 123&lt;br&gt;
String(123);     // "123"&lt;br&gt;
Boolean(0);      // false&lt;/p&gt;

&lt;p&gt;⚙️ Common Conversion Rules&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;String + Number → String (concatenation)&lt;/li&gt;
&lt;li&gt;String * Number / String - Number → Number (if string is numeric)&lt;/li&gt;
&lt;li&gt;== (loose equality) allows type coercion&lt;/li&gt;
&lt;li&gt;=== (strict equality) does not allow type coercion (compares value &amp;amp; type)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;📝 Common Type Coercion Table&lt;br&gt;
Expression  What Happens Internally                Result / Type&lt;br&gt;
1 + '2'         Number 1 → String "1" then "1" + "2"  "12" (string)&lt;br&gt;
'5' * 2         String '5' → Number 5 then 5 * 2  10 (number)&lt;br&gt;&lt;br&gt;
'10' - 3    String '10' → Number 10 then 10 - 3   7 (number)&lt;br&gt;
true + 1    Boolean true → Number 1 then 1 + 1    2 (number)&lt;br&gt;
false + 10  Boolean false → Number 0 then 0 + 10  10 (number)&lt;br&gt;
null + 1    null → Number 0 then 0 + 1            1 (number)&lt;br&gt;
undefined + 1   undefined → NaN                           NaN (number)&lt;br&gt;
[] + []          Both arrays → Strings "" + ""            "" (string)        &lt;/p&gt;

&lt;p&gt;💡 Best Practices&lt;/p&gt;

&lt;p&gt;Prefer explicit coercion to avoid unexpected results.&lt;/p&gt;

&lt;p&gt;Use === instead of == for comparisons unless you intentionally want coercion.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>coercion</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
