From 9cf79b915b85d13f5a29c46cebcbf5b6d12a0593 Mon Sep 17 00:00:00 2001 From: anushap976 Date: Tue, 11 Mar 2025 21:23:30 -0500 Subject: [PATCH] Code changes for implicit and explicit --- ...t-and-implicit-conversion-in-javascript.js | 38 +++++++++++++++++-- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/explicit-and-implicit-conversion-in-javascript.js b/explicit-and-implicit-conversion-in-javascript.js index ede0ccd..b76fcd6 100644 --- a/explicit-and-implicit-conversion-in-javascript.js +++ b/explicit-and-implicit-conversion-in-javascript.js @@ -18,15 +18,45 @@ Use console.log() to clearly show the before-and-after type conversions. */ - -let result = "5" - 2; +// the '-' operator makes "5" to 5 into a number, so it works as expected, but it could be clearer if we explicitly converts string to a number +// Explicit type conversion to number for correct subtraction, using Number() convert "5" to 5 +let result = Number("5") - 2; console.log("The result is: " + result); -let isValid = Boolean("false"); +//Boolean conversion: converts non-empty string to true +let isValid = Boolean("false"); // "false"(string) is truthy, So isvalid becomes true since it gives output if (isValid) { console.log("This is valid!"); } +//explicit type conversion let age = "25"; -let totalAge = age + 5; +// Converting age from string to number before adding +let totalAge = Number(age) + 5; console.log("Total Age: " + totalAge); + +// One example of implicit conversion + +let number = 30; +let booleanValue = true; +let sumOutput = number + booleanValue; // implicit conversion booleanvalue 'True' gives value as 1 and returns output +console.log("Implicit conversion output: " + sumOutput, '-', typeof(sumOutput)); + +//edge case : null implicitly converted to a number +let nullValue = null; +let sumWithNull = number + nullValue; // implicit conversion: Null treated as 0 +console.log("Implicit conversion with Null: " + sumWithNull, '-', typeof(sumWithNull) ); + + +// One example of explicit conversion +let firstNumber = "10"; +let secondNumber = 10.5; +let expectedOutput = firstNumber + secondNumber; // before explicit conversion returns string +console.log("Explicit conversion output before type conversion: " + expectedOutput, '-', typeof(expectedOutput)); +let expectedOutput1 = Number(firstNumber) + secondNumber; // explicit conversion to number returns number +console.log("Explicit conversion output after type conversion: " + expectedOutput1, '-', typeof(expectedOutput1)); + +// edge case : Nan explicitly converted to number +let nanNumber = "Good morning"; +let conversionOutput = Number(nanNumber); // explicit conversion gives NaN +console.log("Explicit conversion of Nan: " + conversionOutput); \ No newline at end of file