[关闭]
@Wangww0925 2019-08-07T07:54:17.000000Z 字数 1965 阅读 182

ECMAScript的核心语言 (二)数字 Number

js-笔记


数字整型的表示方法:

  1. 1、十进制(默认): var num1 = 100;
  2. 2、八进制(以0开头): var num2 = 0144; // 返回 100
  3. 严格模式下不支持,部分浏览器不支持,不推荐使用
  4. 3、十六进制(以0x开头): var num3 = 0xff; // 返回 255

数字浮点型的表示方法:

  1. 1、小数
  2. var num5 = 1.2;
  3. 精度问题: 1.2-1.1 // 返回 0.0999999999;而不是 0.1
  4. 2、科学计数法
  5. var num7 = 2.1e10; // 返回 21000000000
  6. 2.1e10 = 2.1 * 10000000000

JS中数字取值范围:

  1. 1、最大值 MAX_VALUE :
  2. console.log(Number.MAX_VALUE); // 返回 1.7976931348623157e+308
  3. 2、最小值 MIN_VALUE
  4. console.log(Number.MIN_VALUE); // 返回 5e-324
  5. 3、无穷大 Infinity 负无穷大 -Infinity
  6. 40相当于无限接近0
  7. var num = 100/0; // 返回 Infinity
  8. var num = 100/-0; // 返回 Infinity
  9. 5、特殊:
  10. console.log(0/-0); // 如果0/-0,返回 NaN
  11. console.log(100*2); // 返回 200

NaN:

全称not a number,是一个数字类型,但是不是以数字的形式出现的

NaN的特点:

  1. 1. 跟任何值都不相等(包括NaN自己),都返回false
  2. console.log(NaN == 0);
  3. console.log(NaN == '');
  4. console.log(NaN == undefined);
  5. console.log(NaN == null);
  6. console.log(NaN == NaN);
  7. 2. 与任何值运算还是NaN
  8. console.log(NaN * 2);
  9. console.log(NaN - 2);
  10. 3. 字符串参与运算会得到NaN
  11. console.log('100px' * 2);
  12. console.log('abc' * 2);

判断NaN: 使用isNaN()

是NaN:

  1. isNaN(0/-0)
  2. isNaN('abc')
  3. isNaN('100px')

可以转换成数字的都不是NaN

  1. isNaN('100')

判断是否有穷: 使用isFinite()

无穷:Infinity -Infinity NaN ,返回false

  1. isFinite(NaN)
  2. isFinite(Infinity)
  3. isFinite(-Infinity)

除了3个无穷,其他都是有穷 ,返回true

  1. isFinite(10e20)
  2. isFinite(0.000000001)

Number的属性: MAX_VALUE 、 MIN_VALUE 、 NaN


Number的方法:

1、 toString() 转换成指定进制的数值:

  1. console.log('10的二进制:' + 10..toString(2)); // 返回 10的二进制是:1010
  2. console.log('10的十六进制:' + 10..toString(16)); // 返回 10的十六进制是:a

2、 toFixed() 转换成指定位数的小数数值: 取值范围0-20

  1. console.log(12.123456.toFixed(2)); // 返回 12.12

3、 toExponential() 转换成科学计数法表示的数:

  1. console.log(100000..toExponential()); // 返回 1e+5

4、 toPrecision() 转换成指定长度的数值: 取值范围是1-21

  1. console.log(1000000000000..toPrecision(0)); // 报rangeError,范围错误
  2. console.log(100000..toPrecision(1)); // 返回 1.0e+5,与toExponential()结果一致
  3. console.log(1000000..toPrecision(2)); // 返回 1.0e+6
  4. console.log(1000000..toPrecision(4)); // 返回 1.000e+6

作者 wendy
2019 年 5月 23日

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注