数值-Number
Number 对象是原始数值的包装对象。
Number 创建方式 new Number()。
1.创建Number对象方法
js
var num=new Number(value)注意: 如果一个参数值不能转换为一个数字将返回 NaN (非数字值)。
2.Number对象属性
可通过Number.key来获取
| 属性 | 描述 |
|---|---|
| MAX_VALUE | 可表示的最大的数。 |
| MIN_VALUE | 可表示的最小的数。 |
| NEGATIVE_INFINITY | 负无穷大,溢出时返回该值。 |
| NaN | 非数字值。 |
| POSITIVE_INFINITY | 正无穷大,溢出时返回该值。 |
| prototype | 允许您可以向对象添加属性和方法。 |
3.Number对象静态方法
Number.isNaN()
作用:检测指定参数是否为 NaN。
返回值:布尔型
js
Number.isNaN(123); // false
Number.isNaN(-1.23); // false
Number.isNaN('123'); // false
Number.isNaN(0/0); // true
Number.isNaN(5-2); // false
Number.isNaN(0); // false
Number.isNaN('Hello'); // false
Number.isNaN('2005/12/12'); // false
Number.isNaN(' '); // false和全局函数 isNaN() 相比,Number.isNaN() 不会自行将参数转换成数字,只有在参数是值为 NaN 的数字时,才会返回 true。
js
Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0) // true
// 下面这几个如果使用全局的 isNaN() 时,会返回 true。
Number.isNaN("NaN"); // false,字符串 "NaN" 不会被隐式转换成数字 NaN。
Number.isNaN(undefined); // false
Number.isNaN({}); // false
Number.isNaN("blabla"); // false
// 下面的都返回 false
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);
Number.isNaN("37");
Number.isNaN("37.37");
Number.isNaN("");
Number.isNaN(" ");Number.isFinite()
作用:检测指定参数是否为无穷大,如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false。
- Number.isFinite() 与全局的 isFinite() 函数不同,全局的 isFinite() 会先把检测值转换为 Number ,然后在检测。
- Number.isFinite() 不会将检测值转换为 Number对象,如果检测值不是 Number 类型,则返回 false。
语法:
js
Number.isFinite(value)返回值:布尔型
js
Number.isFinite(123) //true
Number.isFinite(-1.23) //true
Number.isFinite(5-2) //true
Number.isFinite(0) //true
Number.isFinite('123') //false
Number.isFinite('Hello') //false
Number.isFinite('2005/12/12') //false
Number.isFinite(Infinity) //false
Number.isFinite(-Infinity) //false
Number.isFinite(0 / 0) //falseNumber.isInteger()
作用:检测参数是否为整数
返回布尔值
js
Number.isInteger(0); // true
Number.isInteger(1); // true
Number.isInteger(-100000); // true
Number.isInteger(0.1); // false
Number.isInteger(Math.PI); // false
Number.isInteger(Infinity); // false
Number.isInteger(-Infinity); // false
Number.isInteger("10"); // false
Number.isInteger(true); // false
Number.isInteger(false); // false
Number.isInteger([1]); // false4.Number对象的原型方法
toFixed()
作用:
- 把数字转换为字符串,结果的小数点后有指定位数的数字
- 简单来说,就是保留几位小数,若不够则补0
语法:
js
number.toFixed(x)参数:
- number:需要转换成字符串的数字
- x:必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。
js
const n=1.223344
console.log(n.toFixed()) // 1
console.log(n.toFixed(3)) // 1.223
console.log(n.toFixed(10)) // 1.2233440000toLocaleString()
作用:方法返回这个数字在特定语言环境下的表示字符串
语法:
js
toLocaleString(locales, options)参数:
- locales:可选
- 缩写语言代码(BCP 47 language tag)的字符串或者这些字符串组成的数组。与
Intl.NumberFormat()构造函数的locales(en-US) 参数相同。
- 缩写语言代码(BCP 47 language tag)的字符串或者这些字符串组成的数组。与
- options:可选
- 调整输出格式的对象。与
Intl.NumberFormat()构造函数的options(en-US) 参数相同。
- 调整输出格式的对象。与
js
const number = 123456.789;
console.log(number.toLocaleString()); // 123,456.789
// 德国使用逗号作为小数分隔符,分位周期为千位
console.log(number.toLocaleString('de-DE')); // → 123.456,789
// 在大多数阿拉伯语国家使用阿拉伯语数字
console.log(number.toLocaleString('ar-EG')); // → ١٢٣٤٥٦٫٧٨٩
// 印度使用千位/拉克(十万)/克若尔(千万)分隔
console.log(number.toLocaleString('en-IN')); // → 1,23,456.789
// nu 扩展字段要求编号系统,e.g. 中文十进制
console.log(number.toLocaleString('zh-Hans-CN-u-nu-hanidec')); // → 一二三,四五六.七八九
// 当请求不支持的语言时,例如巴厘语,加入一个备用语言,比如印尼语
console.log(number.toLocaleString(['ban', 'id'])); // → 123.456,789