JS Datatype Conversions
Download (.odt) Download (Markdown)String to number
[hook]Using parseInt(string, radix) function (radix parameter is optional, 10 if not provided):
let str = "69";
let str2 = "F";
let str3 = "69 is my favorite number";
let str4 = "My favorite number is 69";
let strToBase10Num = parseInt(str); // 69
let str2ToBase10Num = parseInt(str2); // NaN (the digit F doesn't exist in base 10)
let str2ToBase16Num = parseInt(str2, 16); // 15 (because F in base 16 is 15)
let str3ToBase10Num = parseInt(str3); // 69 (it quits after it finds a non-numeric character)
let str4ToBase10Num = parseInt(str4); // NaN (the first character is non-numeric so it quits)
Using parseFloat(string) function:
let str = "3.14";
let str2 = "3.14 is PI";
let str3 = "PI is 3.14";
let strToNum = parseFloat(str); // 3.14
let str2ToNum = parseFloat(str2); // 3.14
let str3ToNum = parseFloat(str3); // NaN
Using constructor of Number object:
let str = "3.14";
let str2 = "3.14 is PI";
let str3 = "PI is 3.14";
let strToNum = Number(str); // 3.14
let str2ToNum = Number(str2); // NaN (tries to convert the whole string at the same time unlike parseInt and parseFloat)
let str3ToNum = Number(str3); // NaN
Using unary + operator:
let str = "3.14";
let str2 = "3.14 is PI";
let str3 = "PI is 3.14";
let strToNum = + str; // 3.14
let str2ToNum = + str2; // NaN (tries to convert the whole string at the same time similar to Number() constructor)
let str3ToNum = + str3; // NaN
Number to string
[hook]Using toString() method:
let num = 69;
let numToStr = num.toString(); // "69"
String to boolean
[hook]"true" to true and "false" to false
Using === (identity) operator:
let str = "true";
let str2 = "True";
let str3 = "false";
let strToBool = (str === "true"); // true
let str2ToBool = (str2 === "true"); // false
let str3ToBool = (str3 === "true"); // false
(parentheses are optional but improve readability)
Using test(string) method on a case sensitive regex:
let str = "true";
let str2 = "True";
let str3 = "false";
let strToBool = (/true/).test(str); // true
let str2ToBool = (/true/).test(str2); // false
let str3ToBool = (/true/).test(str3); // false
Using test(string) method on a case insensitive regex:
let str = "true";
let str2 = "True";
let str3 = "false";
let strToBool = (/true/i).test(str); // true
let str2ToBool = (/true/i).test(str2); // true
let str3ToBool = (/true/i).test(str3); // false
Truthy values to true and falsy values to false
Truthy values: any string that isn't empty (contains at least one character)
Falsy value: empty string
Using constructor of Boolean object:
let str = "true";
let str2 = "false";
let str3 = "";
let strToBool = Boolean(str); // true
let str2ToBool = Boolean(str2); // true
let str3ToBool = Boolean(str3); // false
Using double NOT operator (to invert result of single NOT operator):
let str = "true";
let str2 = "false";
let str3 = "";
let strToBool = !!str; // true
let str2ToBool = !!str2; // true
let str3ToBool = !!str3; // false
Boolean to string
[hook]Using toString() method:
let bool = true;
let bool2 = false;
let boolToString = bool.toString(); // "true"
let bool2ToString = bool2.toString(); // "false"
Number to boolean
[hook]Truthy values: each integer and float number except for 0
Falsy value: 0
Using constructor of Boolean object:
let num = 0;
let num2 = 3;
let num3 = -3;
let numToBool = Boolean(num); // false
let num2ToBool = Boolean(num2); // true
let num3ToBool = Boolean(num3); // true
Using double NOT operator (to invert result of single NOT operator):
let num = 0;
let num2 = 3;
let num3 = -3;
let numToBool = !!num; // false
let num2ToBool = !!num2; // true
let num3ToBool = !!num3; // true
Boolean to number
[hook]Using ternary operator (recommended - fastest benchmark):
let bool = true;
let bool2 = false;
let boolToNum = bool ? 1 : 0; // 1
let bool2ToNum = bool2 ? 1 : 0; // 0
Using unary + operator:
let bool = true;
let bool2 = false;
let boolToNum = + bool; // 1
let bool2ToNum = + bool2; // 0
Using constructor of Number operator:
let bool = true;
let bool2 = false;
let boolToNum = Number(bool); // 1
let bool2ToNum = Number(bool2); // 0