JS: Number Constructor
new Number(arg)
-
return a object that represent the number arg.
// Number called as constructor, returns object (typeof (new Number(3))) === "object"
Number(arg)
-
return a Primitive Value of the number arg
// Number called as function, return primitive (typeof Number(3)) === "number"
Special Results
Argument Type | Result |
---|---|
undefined | Return NaN . |
null | Return +0. |
true or false | Return 1 if argument is true . Return +0 if argument is false . |
Number | Return argument (no conversion). |
String | Return a number or NaN . |
Symbol | Throw a TypeError exception. |
Object | Return a number or NaN |
Example: Special Literal Values of Number to Primitive
/* test convert number literal value to number primitive. */ console.log( Number(Infinity) === Infinity, Number(-Infinity) === -Infinity, Number.isNaN(Number(NaN)), );
/* test convert undefined and null to number primitive. */ console.log( Number.isNaN(Number(undefined)), Number(null) === 0, );
/* test convert boolean value to number primitive. */ console.log( Number(true) === 1, Number(false) === 0, );
Example: Convert String to Number Primitive
console.log(Number("0.03") === 0.03); // extra zero before or after is ok console.log( Number("00.03") === 0.03, Number("00.030") === 0.03, ); // extra space in front or back are ok console.log( Number(" 0.03 ") === 0.03, Number(" +0.03 ") === 0.03, Number(" -0.03 ") === -0.03, ); // cannot have space after sign console.log(Number.isNaN(Number("- 0.03 "))); // cannot have space between digits console.log(Number.isNaN(Number("1 000"))); // lowline is ok console.log(Number.isNaN(Number("1_000")));
JavaScript, Number
- JS: Number
- JS: Assignment Operators
- JS: Math Operators
- JS: Number Comparison Operators
- JS: Convert String, Number
- JS: Convert Decimal, Hexadecimal
- JS: Convert Decimal, Binary
- JS: Format Number
- JS: Random Integer Range Function 💠
- JS: Number (class)
- JS: Number Constructor
- JS: Number.prototype
- JS: Math (namespace)