前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JS】125-重温基础:数字

【JS】125-重温基础:数字

作者头像
pingan8787
发布2020-05-13 19:03:02
2.5K0
发布2020-05-13 19:03:02
举报
文章被收录于专栏:前端自习课前端自习课

「本章节复习的是JS中的数字类型,涉及的API比较多。」

前置基础: 在JavaScript中,数字为双精度浮点类型(即一个数字范围只能在-(253-1)和(253-1)之间),整数类型也一样。 另外数字类型也可以是以下三种符号值:

  • +Infinity : 正无穷;
  • -Infinity : 负无穷;
  • NaN : 非数字(not a number);

1.数字对象

JS中内置了Number对象的一些常量属性:

代码语言:javascript
复制
可表示的最大值

注意:以上所有属性都是「不可写,不可枚举,也不可配置」

  • Number.MAX_VALUE

Number.MAX_VALUENumber 对象的一个「静态属性」,值接近于 1.79E+308。大于 Number.MAX_VALUE 的值代表 "Infinity"。

代码语言:javascript
复制
let a = 100;
if(a < Number.MAX_VALUE){
    console.log('success');
}
// success
  • Number.MIN_VALUE

Number.MIN_VALUENumber 对象的一个「静态属性」,值接近于 5e-324,是 JavaScript 里最接近 0 的正值,而不是最小的负值。

代码语言:javascript
复制
let a = 100;
if(a > Number.MIN_VALUE){
    console.log('success');
}
// success
  • Number.NaN

Number.NaN 表示“非数字”,和 NaN 一样。

  • Number.POSITIVE_INFINITY

Number.POSITIVE_INFINITY 属性表示正无穷大,值同全局对象 Infinity 属性的值相同。

代码语言:javascript
复制
let a = Number.MAX_VALUE * 2;
if(a == Number.POSITIVE_INFINITY){
    console.log('success');
}
// success
  • Number.NEGATIVE_INFINITY

Number.NEGATIVE_INFINITY 属性表示负无穷大,值和全局对象的 Infinity 属性的「负值」相同。

代码语言:javascript
复制
let a = - Number.MAX_VALUE * 2;
if(a == Number.NEGATIVE_INFINITY){
    console.log('success');
}
// success
  • Number.EPSILON

Number.EPSILON属性表示 1 与Number可表示的大于 1 的最小的浮点数之间的差值,值接近于 2-52 。

代码语言:javascript
复制
let a = 0.1, b = 0.2, c = 0.3;
let d = (Math.abs(a + b - c) < Number.EPSILON);
d; // true
  • Number.MIN_SAFE_INTEGER

JS中最小的安全的integer型数字 (-(253 - 1))。

  • Number.MAX_SAFE_INTEGER

JS中最大的安全的integer型数字 (253 - 1)。

2.数字方法

常见的方法有:

代码语言:javascript
复制
把字符串参数解析成浮点数,和全局方法 parseFloat() 作用一致.

使用方法:

  • Number.parseFloat()
代码语言:javascript
复制
let a1 = 3.1415, a2 = '3.1114';
Number.parseFloat(a1);  // 3.1415;
Number.parseFloat(a2);  // 3.1111;
parseFloat(a1);         // 3.1415;
parseFloat(a2);         // 3.1111;
Number.parseFloat  == parseFloat;// true
  • Number.parseInt()
代码语言:javascript
复制
let a1 = '0110';
Number.parseInt(a1, 2);     // 6
Number.parseInt(a1, 10);    // 110
Number.parseInt = parseInt; // true
  • Number.isFinite()
代码语言:javascript
复制
Number.isFinite(Infinity);  // false
Number.isFinite(NaN);       // false
Number.isFinite(-Infinity); // false
Number.isFinite(0);         // true
Number.isFinite(2e64);      // true
Number.isFinite('0');       // false, 全局函数 isFinite('0') 会返回 true
  • Number.isInteger()
代码语言:javascript
复制
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]);       // false
  • Number.isNaN()
代码语言:javascript
复制
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.isSafeInteger()
代码语言:javascript
复制
Number.isSafeInteger(3);                    // true
Number.isSafeInteger(Math.pow(2, 53))       // false
Number.isSafeInteger(Math.pow(2, 53) - 1)   // true
Number.isSafeInteger(NaN);                  // false
Number.isSafeInteger(Infinity);             // false
Number.isSafeInteger("3");                  // false
Number.isSafeInteger(3.1);                  // false
Number.isSafeInteger(3.0);                  // true

数字类型原型上的方法:

方法

描述

案例

toExponential()

返回一个数字的指数形式的字符串

1.23e+2

toFixed()

返回指定小数位数的表示形式

var a=123,b=a.toFixed(2)//b="123.00"

toPrecision()

返回一个指定精度的数字。

a=123中,3会由于精度限制消失var a=123,b=a.toPrecision(2)//b="1.2e+2"

  • toExponential()

「指数表示法」返回该数值「字符串」表示形式,可接收一个参数指定小数点后几位数字。

代码语言:javascript
复制
let a = 99.6633;
let a1 = '字符串:' + a.toExponential(); // "字符串:9.96633e+1"
let a2 = '字符串:' + a.toExponential(2);// "字符串:9.97e+1"
  • toFixed()

使用定点表示法来格式化一个数,可接收一个参数指定保留小数点后几位,取值为0-20之间。 注意: 返回的数据类型是字符串类型。

代码语言:javascript
复制
let a = 1.2345;
a.toFixed();   // "1"
a.toFixed(2);  // "1.23"
  • toPrecision()

「指定的精度返」回该数值对象的字符串表示,可接收一个参数,用来指定有效数个数的整数。

代码语言:javascript
复制
let a = 1.2345;
let a1 = '字符串:' + a.toPrecision(); // "字符串:1.2345"
let a2 = '字符串:' + a.toPrecision(1);// "字符串:1"
let a2 = '字符串:' + a.toPrecision(2);// "字符串:1.2"

3.数学对象

JS内置的数学对象Math,有很多属性和方法,这里需要注意的是Math对象中的三角函数参数都是「弧度制」的。

代码语言:javascript
复制
绝对值

完整的描述和使用方法,建议查看 MDN Math

参考资料

1.MDN 数字和日期

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端自习课 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.数字对象
  • 2.数字方法
  • 3.数学对象
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档