SOURCE

/**
 * Number
 * JavaScript 的 Number 对象是经过封装的能让你处理数字值的对象。
 * Number 对象由 Number() 构造器创建。
 * JavaScript的Number类型为双精度IEEE 754 64位浮点类型。
 * 最近出了stage3BigInt 任意精度数字类型,已经进入stage3规范
 * value 被创建对象的数字值。
 * Number 对象主要用于:
 * 如果参数无法被转换为数字,则返回 NaN。
 * 在非构造器上下文中 (如:没有 new 操作符),Number 能被用来执行类型转换。
 * => number / number_object
 */
//Number() / new Number()
const num1 = Number(1);
const num2 = new Number(1);
const num3 = 1;
// console.log(num1 === num2, num1 === num3);
// console.log(num1.__proto__ === Number.prototype,
//     num2.__proto__ === Number.prototype);//true,true

/**
 * Number.EPSILON 属性表示 1 与Number可表示的大于 1 的最小的浮点数之间的差值。
 * 你不必创建一个 Number 对象来访问这个静态属性(直接使用 Number.EPSILON)
 */


/**
 * Number.MAX_SAFE_INTEGER 常量
 * 表示在 JavaScript 中最大的安全整数(maxinum safe integer)(2^53 - 1)。
 * writable	false
 * enumerable	false
 * configurable	fals
 */


/**
 * Number.MAX_VALUE 属性表示在 JavaScript 里所能表示的最大数值。
 * MAX_VALUE 属性值接近于 1.79E+308。大于 MAX_VALUE 的值代表 "Infinity"。
 * 因为 MAX_VALUE 是 Number 对象的一个静态属性,
 * 所以你应该直接使用Number.MAX_VALUE ,而不是作为一个创建的 Number 实例的属性。
 */

/**
 * Number.MIN_SAFE_INTEGER 代表在 JavaScript中最小的安全的integer型数字 (-(2^53 - 1)).
 * IN_SAFE_INTEGER 的值是-9007199254740991. 
 * 形成这个数字的原因是 JavaScript 在 IEEE 754中
 * 使用double-precision floating-point format numbers 作为规定。
 * 在这个规定中能安全的表示数字的范围在-(2^53 - 1) 到 2^53 - 1之间.
 * 由于MIN_SAFE_INTEGER 是Number的一个静态属性,你可以直接使用Number.MIN_SAFE_INTEGER,
 *  而不是自己去创建一个Number的属性。
 */

/**
 * Number.MIN_VALUE 属性表示在 JavaScript 中所能表示的最小的正值。
 * MIN_VALUE 属性是 JavaScript 里最接近 0 的正值,而不是最小的负值。
 * MIN_VALUE 的值约为 5e-324。小于 MIN_VALUE ("underflow values") 的值将会转换为 0。
 * 因为 MIN_VALUE 是 Number 的一个静态属性,
 * 因此应该直接使用: Number.MIN_VALUE, 而不是作为一个创建的 Number 实例的属性。
 */

/**
 * Number.NaN 表示“非数字”(Not-A-Number)。和 NaN 相同。
 * 不必创建一个 Number 实例来访问该属性,使用 Number.NaN 来访问该静态属性。
 */

/**
 * Number.NEGATIVE_INFINITY 属性表示负无穷大。
 * 不用创建一个 Number 实例,使用 Number.NEGATIVE_INFINITY 来访问该静态属性。
 */

/**
 * Number.POSITIVE_INFINITY 属性表示正无穷大。
 * 不必创建一个 Number 实例,可使用 Number.POSITIVE_INFINITY 来访问该静态属性。
 */

/**
 * Number.isFinite()
 * Number.isFinite() 方法用来检测传入的参数是否是一个有穷数。
 * => boolean
 */
//Number.isFinite(value)
const num4 = 4;
const num5 = Number.POSITIVE_INFINITY;
// console.log(Number.isFinite(num4), Number.isFinite(num5));//true,false

/**
 * Number.isInteger() 方法用来判断给定的参数是否为整数。
 * => boolean
 */
//Number.isInteger(value)
const num6 = 123;
const num7 = 123.123;
// console.log(Number.isInteger(num6), Number.isInteger(num7));//true,false

/**
 * Number.isNaN() 方法确定传递的值是否为 NaN,并且检查其类型是否为 Number。
 * 它是原来的全局 isNaN() 的更稳妥的版本。
 * 在 JavaScript 中,NaN 最特殊的地方就是,
 * 我们不能使用相等运算符(== (en-US) 和 === (en-US))来判断一个值是否是 NaN,
 * 因为 NaN == NaN 和 NaN === NaN 都会返回 false。因此,必须要有一个判断值是否是 NaN 的方法。
 * 和全局函数 isNaN() 相比,Number.isNaN() 不会自行将参数转换成数字,
 * 只有在参数是值为 NaN 的数字时,才会返回 true。
 * => boolean
 */
const num8 = 8;
const num9 = '9';
// Number.isNaN(value)
// console.log(Number.isNaN(num8), Number.isNaN(num9));//false,false


/**
 * Number.isSafeInteger() 方法用来判断传入的参数值是否是一个“安全整数”(safe integer)。
 * 一个安全整数是一个符合下面条件的整数:
 * 可以准确地表示为一个IEEE-754双精度数字,
 * 其IEEE-754表示不能是舍入任何其他整数以适应IEEE-754表示的结果。
 * 比如,2^53 - 1 是一个安全整数,它能被精确表示,
 * 在任何 IEEE-754 舍入模式(rounding mode)下,没有其他整数舍入结果为该整数。
 * 作为对比,2^53 就不是一个安全整数,它能够使用 IEEE-754 表示,
 * 但是 2^53 + 1 不能使用 IEEE-754 直接表示,
 * 在就近舍入(round-to-nearest)和向零舍入中,会被舍入为 2^53。
 * 安全整数范围为 -(2^53 - 1)到 2^53 - 1 之间的整数,包含 -(2^53 - 1)和 2^53 - 1。
 * => boolean
 */
//Number.isSafeInteger(value)

/**
 * Number.parseFloat() 方法可以把一个字符串解析成浮点数。
 * 该方法与全局的 parseFloat() 函数相同,并且处于 ECMAScript 6 规范中(用于全局变量的模块化)。
 * =>float_number / NaN
 */
//Number.parseFloat(string)
const num10 = '10';
const target10 = Number.parseFloat(num10);
// console.log(target10);//10

/**
 * Number.parseInt() 方法依据指定基数 [ 参数 radix 的值],
 * 把字符串 [ 参数 string 的值] 解析成整数。
 * 参数radix:一个介于2到36之间的整数,代表字符串的基数(数学数字系统中的基)。
 * 小心-这并不是默认为10。
 * => number / NaN
 */
//Number.parseInt(string[, radix])
const num11 = Number.parseInt('100', 5);
// console.log(num11);//25

/**
 * Number.prototype.toExponential()
 * 以指数表示法返回该数值字符串表示形式。
 */
//numObj.toExponential(fractionDigits)

/**
 * Number.prototype.toFixed()
 * 使用定点表示法来格式化一个数值。
 * => new number
 */
//num.toFixed()
const num13 = 123.4567;
// console.log(num13.toFixed(1), num13);//123.5,123.4567

/**
 * Number.prototype.toLocaleString()
 * toLocaleString() 方法返回这个数字在特定语言环境下的表示字符串。
 * 新的 locales 和 options 参数让应用程序可以指定要进行格式转换的语言,并且定制函数的行为。
 * 在旧的实现中,会忽略 locales 和 options 参数,使用的语言环境和返回的字符串的形式完全取决于实现方式。
 */
//numObj.toLocaleString([locales [, options]])


/**
 * Number.prototype.toPrecision()
 * toPrecision() 方法以指定的精度返回该数值对象的字符串表示。
 * precision
 * 可选。一个用来指定有效数个数的整数。
 * 以定点表示法或指数表示法表示的一个数值对象的字符串表示,四舍五入到 precision 参数指定的显示数字位数。
 * 查看 Number.prototype.toFixed() 方法关于四舍五入的讨论,同样应用于 toPrecision 方法。
 * 如果忽略 precision 参数,则该方法表现类似于 Number.prototype.toString()。
 * 如果该参数是一个非整数值,将会向下舍入到最接近的整数。
 * => new number
 */
const num14 = 54.1234;
// console.log(num14.toPrecision(3), num14);//54.1,54.1234

/**
 * Number.prototype.toString()
 * toString() 方法返回指定 Number 对象的字符串表示形式。
 * radix
 * 指定要用于数字到字符串的转换的基数(从2到36)。如果未指定 radix 参数,则默认值为 10。
 * => new string
 */
//numObj.toString([radix])
const num15 = 15;
// console.log(typeof num15.toString(),
//     typeof num15, num15.toString(2));//string,number,1111

/**
 * Number.prototype.valueOf()
 * valueOf() 方法返回一个被 Number 对象包装的原始值。
 * => number
 */
const num16 = 16;
// console.log(typeof num16.valueOf());//16






console 命令行工具 X clear

                    
>
console