0%

JS--数值

精度

  • 绝对值小于 2 的 53 次方的整数,即-2^532^53,都可以精确表示。

  • JavaScript 能够表示的数值范围为2^10242^-1023

  • 自动将数值转为科学计数法表示

    1. 小数点前的数字多于 21 位。
    2. 小数点后的零多于 5 个。

+0 -0

  • JavaScript 内部实际上存在 2 个0:一个是+0,一个是-0,区别就是 64 位浮点数表示法的符号位不同。它们是等价的。

NaN

  • NaN不等于任何值,包括它本身。 NaN === NaN //false

Infinity

  1. “无穷”,用来表示两种场景。一种是一个正的数值太大,或一个负的数值太小,无法表示;另一种是非 0 数值除以 0,得到Infinity

  2. ```js 0 / 0 // NaN 1 / 0 // Infinity

    1
    2
    3
    4
    5
    6
    7

    3. 0 乘以`Infinity`,返回`NaN`;0 除以`Infinity`,返回`0`;`Infinity`除以 0,返回`Infinity`。

    4. ```js
    0 * Infinity // NaN
    0 / Infinity // 0
    Infinity / 0 // Infinity

Base64 转码

  1. btoa():任意值转为 Base64 编码
  2. atob():Base64 编码转为原来的值

保留小数点后多少位

1. Number.prototype.toFixed(n) 保留n位小数

保留有效位

1. Number.prototype.toPrecision(n)  保留n位有效数字

转成科学计数法

1.  Number.prototype.toExponential() 转成科学计数法

1
2
3
4
5
(12.34).toPrecision(1) // "1e+1"
(12.34).toPrecision(2) // "12"
(12.34).toPrecision(3) // "12.3"
(12.34).toPrecision(4) // "12.34"
(12.34).toPrecision(5) // "12.340"

String

  1. charCodeAt()方法返回字符串指定位置的 Unicode 码点(十进制表示),相当于String.fromCharCode()的逆操作。

  2. String.prototype.localeCompare()

  3. localeCompare方法用于比较两个字符串。它返回一个整数,如果小于 0,表示第一个字符串小于第二个字符串;如果等于 0,表示两者相等;如果大于 0,表示第一个字符串大于第二个字符串。

  4. ```JS 'apple'.localeCompare('banana') // -1 'apple'.localeCompare('apple') // 0

    1
    2
    3
    4
    5
    6
    7

    ## Date

    1. `Date.parse`方法用来解析日期字符串,返回该时间距离时间零点(1970 年 1 月 1 日 00:00:00)的毫秒数。

    2. ```JS
    Date.parse('2011-10-10')

  5. Date.UTC方法接受年、月、日等变量作为参数,返回该时间距离时间零点(1970 年 1 月 1 日 00:00:00 UTC)的毫秒数。

  6. ```js Date.UTC(2011, 0, 1, 2, 3, 4, 567) // 1293847384567

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

    ## JSON

    1. JSON.stringify()

    2. `JSON.stringify`方法用于将一个值转为 JSON 字符串。该字符串符合 JSON 格式,并且可以被`JSON.parse`方法还原。

    3. `JSON.stringify`方法还可以接受一个数组,作为第二个参数,指定需要转成字符串的属性。

    4. `JSON.stringify`还可以接受第三个参数,用于增加返回的 JSON 字符串的可读性。如果是数字,表示每个属性前面添加的空格(最多不超过 10 个);如果是字符串(不超过 10 个字符),则该字符串会添加在每行前面。

    5. ```JS
    JSON.stringify({ p1: 1, p2: 2 }, null, 2);
    /*
    "{
    "p1": 1,
    "p2": 2
    }"
    */