1_000_000.5; // Support with decimals 1_000e1_000; // Support with exponents // Support with binary, octals and hex 0b0000_0000_0101_1011; 0o0001_3520_0237_1327; 0xFFFF_FFFF_FFFF_FFFE; // But you can't use them next to a non-digit number part, or at the start or end _12; // Variable is not defined (the underscore makes it a variable identifier) 12_; // Syntax error (cannot be at the end of numbers) 12_.0; // Syntax error (doesn't make sense to put a separator next to the decimal point) 12._0; // Syntax error 12e_6; // Syntax error (next to "e", a non-digit. Doesn't make sense to put a separator at the start) 10000000; // Syntax error (next to "_", a non-digit. Only 1 separator at a time is allowed The extents +∞, −∞ and NaN (Not a Number) of the number type may be obtained by two program expressions: Infinity; // positive infinity (negative obtained with -Infinity for instance) NaN; // The Not-A-Number value, also returned as a failure in ... // ... string-to-number conversions Infinity and NaN are numbers: typeof Infinity; // returns "number" typeof NaN; // returns "number" These three special values correspond and behave as the IEEE-754 describes them. The Number constructor (used as a function), or a unary + or -, may be used to perform explicit numeric conversion: var myString = "123.456"; var myNumber1 = Number(myString); var myNumber2 = +myString; When used as a constructor, a numeric wrapper object is created (though it is of little use): myNumericWrapper = new Number(123.456); However, NaN is not equal to itself: const nan = NaN; console.log(NaN == NaN); // false console.log(NaN === NaN); // false console.log(NaN !== NaN); // true console.log(nan !== nan); // true // You can use the isNaN methods to check for NaN console.log(isNaN("converted to NaN")); // true console.log(isNaN(NaN)); // true console.log(Number.isNaN("not converted")); // false console.log(Number.isNaN(NaN)); // true BigInt BigInts can be used for arbitrarily large integers. Especially whole numbers larger than 253 - 1, which is the largest number JavaScript can reliably represent with the Number primitive and represented by the Number.MAX_SAFE_INTEGER constant. When dividing BigInts, the results are truncated. String A string in JavaScript is a sequence of characters. In JavaScript, strings can be created directly (as literals) by placing the series of characters between double (") or single (') quotes. Such strings must be written on a single line, but may include escaped newline characters (such as \n). The JavaScript standard allows the