[ES6]Number
CH6 Number
Properties
Number.EPSILON
The smallest interval between two representable numbers.
Number.MAX_SAFE_INTEGER
The maximum safe integer in JavaScript (253 - 1).
Number.MAX_VALUE
The largest positive representable number.
Number.MIN_SAFE_INTEGER
The minimum safe integer in JavaScript (-(253 - 1)).
Number.MIN_VALUE
The smallest positive representable number - that is, the positive number closest to zero (without actually being zero).
Number.NaN
Special “not a number” value.
Number.NEGATIVE_INFINITY
Special value representing negative infinity; returned on overflow.
Number.POSITIVE_INFINITY
Special value representing infinity; returned on overflow.
Number.prototype
Allows the addition of properties to a Number object.
Methods
Number.isFinite()
The Number.isFinite() method determines whether the passed value is a finite number.
Number.isInteger()
The Number.isInteger() method determines whether the passed value is an integer.
Number.isNaN()
The Number.isNaN() method determines whether the passed value is NaN and its type is Number. It is a more robust version of the original, global isNaN().
Number.isSafeInteger()
The Number.isSafeInteger() method determines whether the provided value is a number that is a safe integer.
Number.parseFloat()
The Number.parseFloat() method parses a string argument and returns a floating point number. This method behaves identically to the global function parseFloat() and is part of ECMAScript 2015 (its purpose is modularization of globals).
Number.parseInt()
The Number.parseInt() method parses a string argument and returns an integer of the specified radix or base.
Number.prototype.toExponential()
The Number.parseInt() method parses a string argument and returns an integer of the specified radix or base.
Number.prototype.toFixed()
The toFixed() method formats a number using fixed-point notation.
Number.prototype.toLocaleString()
The toLocaleString() method returns a string with a language-sensitive representation of this number.
Number.prototype.toPrecision()
The toPrecision() method returns a string representing the Number object to the specified precision.
Number.prototype.toSource()
The toSource() method returns a string representing the source code of the object.
Number.prototype.toString()
The toString() method returns a string representing the specified Number object.
Number.prototype.valueOf()
The valueOf() method returns the wrapped primitive value of a Number object.
es6中Number.parseInt和Math.trunc使用和功能上有什么区别吗?
在数字极大或是极小时候,会自动采用科学计数法时候,parseInt是会有问题的。
-
功能上可能对于部分结果一致,但是其作用是不一样的。
parseInt在实际运用上经常会出一些问题,比如0X或是0开头就会出现解析为十六进制或八进制的问题,虽然你可能本意是转换为十进制,但是后端传递值或是用户输入并不会和你想象的一样。
Math.trunc在ES6更多的是为了补足floor,round,ceil这一系列的方法,以及可想而知,在Math.trunc适用的领域,其性能会比parseInt好不少。
从另外一个角度上来说,如果给你一个能够完成所有功能的函数,但是需要传递很多不同参数,或是命名功能分类清晰的多种函数,去完成一个项目,你会选择哪种呢?
个人而言绝对选择是后一种。
-
简单的说,parseInt() 主要用于将字符串转换成整数,所以哪怕目标本身就是一个数,也极有可能是先转换成字符串再来处理的,这也能解释科学计数法的结果
Math.trunc 是直接对数值进行处理,理论上来说会快一些也更准确一些。可惜有些浏览器不支持。所以现在用 Math.floor 的比较多,但是要注意处理负数。
二进制和八进制表示法
ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。
从 ES5 开始,在严格模式之中,八进制就不再允许使用前缀0表示,ES6 进一步明确,要使用前缀0o表示。
如果要将0b和0o前缀的字符串数值转为十进制,要使用Number方法。
功能上可能对于部分结果一致,但是其作用是不一样的。
parseInt在实际运用上经常会出一些问题,比如0X或是0开头就会出现解析为十六进制或八进制的问题,虽然你可能本意是转换为十进制,但是后端传递值或是用户输入并不会和你想象的一样。
Math.trunc在ES6更多的是为了补足floor,round,ceil这一系列的方法,以及可想而知,在Math.trunc适用的领域,其性能会比parseInt好不少。
从另外一个角度上来说,如果给你一个能够完成所有功能的函数,但是需要传递很多不同参数,或是命名功能分类清晰的多种函数,去完成一个项目,你会选择哪种呢?
个人而言绝对选择是后一种。
parseInt在实际运用上经常会出一些问题,比如0X或是0开头就会出现解析为十六进制或八进制的问题,虽然你可能本意是转换为十进制,但是后端传递值或是用户输入并不会和你想象的一样。
Math.trunc在ES6更多的是为了补足floor,round,ceil这一系列的方法,以及可想而知,在Math.trunc适用的领域,其性能会比parseInt好不少。
从另外一个角度上来说,如果给你一个能够完成所有功能的函数,但是需要传递很多不同参数,或是命名功能分类清晰的多种函数,去完成一个项目,你会选择哪种呢?
个人而言绝对选择是后一种。
简单的说,parseInt() 主要用于将字符串转换成整数,所以哪怕目标本身就是一个数,也极有可能是先转换成字符串再来处理的,这也能解释科学计数法的结果
Math.trunc 是直接对数值进行处理,理论上来说会快一些也更准确一些。可惜有些浏览器不支持。所以现在用 Math.floor 的比较多,但是要注意处理负数。
Math.trunc 是直接对数值进行处理,理论上来说会快一些也更准确一些。可惜有些浏览器不支持。所以现在用 Math.floor 的比较多,但是要注意处理负数。
留言
張貼留言