A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.geeksforgeeks.org/javascript/what-is-type-coercion-in-javascript/ below:

What is Type Coercion in JavaScript?

What is Type Coercion in JavaScript?

Last Updated : 19 Feb, 2025

JavaScript is a loosely typed or dynamic language, which means it automatically converts types when necessary, making it easier for developers to work with different data types in expressions, comparisons, and operations. However, this flexibility can sometimes lead to unexpected results if you're not careful.

Type Coercion in JavaScript

In JavaScript, Type Coercion happens when JavaScript automatically changes one type of value into another. Sometimes, this automatic conversion can cause unexpected results if you’re not aware of how it works.

JavaScript

Output:

"510"

In this example

How Type Coercion Works?

In JavaScript, type coercion mainly occurs in the three ways:

String Coercion

It occurs when the string is combined with the non-string using (+). JavaScript converts numbers and booleans into strings before concatenation.

JavaScript
console.log("5" + 2); 
console.log("5" + true); 

Output:

"52"
"5true"
Number Coercion

In the number coercion, JavaScript converts the string into a number before operating.

JavaScript
console.log("5" - 2); 
console.log("5" * 2); 
console.log("10" / "2"); 

The string is coerced into a number before performing the arithmetic operation.

Boolean Coercion

JavaScript treats the true value as '1' and the false value as '0'.

JavaScript
console.log(Boolean("hello")); 
console.log(Boolean(0)); 
console.log(Boolean([])); 

Non-empty strings are coerced to true, while 0 is coerced to false.

Common Issues of Type Coercion Comparing Different Data Types

Comparison Operator(= =), allows coercion due to which the unexpected conversions occur. To avoid this, we should use the strict equality(= = =) operator.

JavaScript
console.log(0 == "0"); 
console.log(0 == false); 
console.log(" " + 0 == 0);
Operations on null and undefined

Null and undefined behave unexpectedly.

JavaScript
console.log(null == undefined); 
console.log(null === undefined); 
console.log(null + 1); 
NaN Comparisons

NaN is not equal to itself, so checking with isNaN() is the best way to detect it.

JavaScript
console.log(NaN == NaN); 
console.log(isNaN(NaN)); 

In this example, NaN is not equal to itself, so the isNaN() function is the preferred way to check for NaN.

Best Practices to Avoid Type Coercion Issues Use === Instead of ==

When we use strict equality, instead of the comparison operator, it prevents unnecessary types of coercion.

JavaScript

=== ensures no implicit type conversion occurs and both values must be of the same type.

Use Explicit Conversion

Explicit conversion converts the value manually due to which there are fewer chances of errors in the code.

JavaScript
console.log(Number("123"));

This ensures that you're working with the correct type, reducing the chance of errors during operations.

Avoid False Value Confusion

Always check for null, undefined, or empty strings explicitly.

if (value !== null && value !== undefined) {
    console.log("Value exists");
}

This ensures that only non-null and defined values are considered valid.

Use parseInt() and parseFloat() for Number Conversion JavaScript
console.log(parseInt("42px")); 
console.log(parseFloat("3.14abc")); 

This will parse the number part of a string, ensuring a valid numeric conversion.

Handle NaN Properly

Use isNaN() to check if a value is NaN instead of comparing it directly.

if (isNaN(value)) {
    console.log("Invalid number");
}

This ensures you're correctly detecting NaN and handling it appropriately.



RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4