精度
绝对值小于 2 的 53 次方的整数,即
-2^53
到2^53
,都可以精确表示。JavaScript
能够表示的数值范围为2^1024
到2^-1023
自动将数值转为科学计数法表示
- 小数点前的数字多于 21 位。
- 小数点后的零多于 5 个。
+0 -0
JavaScript
内部实际上存在 2 个0
:一个是+0
,一个是-0
,区别就是 64 位浮点数表示法的符号位不同。它们是等价的。
NaN
NaN
不等于任何值,包括它本身。NaN === NaN //false
Infinity
“无穷”,用来表示两种场景。一种是一个正的数值太大,或一个负的数值太小,无法表示;另一种是非 0 数值除以 0,得到
Infinity
。```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 转码
btoa()
:任意值转为 Base64 编码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
charCodeAt()
方法返回字符串指定位置的 Unicode 码点(十进制表示),相当于String.fromCharCode()
的逆操作。String.prototype.localeCompare()
localeCompare
方法用于比较两个字符串。它返回一个整数,如果小于 0,表示第一个字符串小于第二个字符串;如果等于 0,表示两者相等;如果大于 0,表示第一个字符串大于第二个字符串。```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')Date.UTC
方法接受年、月、日等变量作为参数,返回该时间距离时间零点(1970 年 1 月 1 日 00:00:00 UTC)的毫秒数。```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
}"
*/