String
1. 字符串截取相关
String.prototype.substring()
(可能在未来弃用,不推荐使用)String.prototype.substr()
2. 字符串匹配、查找相关
String.prototype.match()
String.prototype.includes()
3.字符串补全
String.prototype.padStart()
String.prototype.padEnd()
RegExp
特殊用法总结
进制转换
注意:因为8进制、16进制的
Number
最终都会被转换成10进制进行计算,所以在进制转换时,我们可以认为Number
类型的数值都为10进制,其它进制均由String
表示。
1. X进制转10进制
1.1 parseInt():任意进制
使用全局函数parseInt(str, [radix])
- 有八进制前导0,十六进制前导0x的情况下可忽略radix参数,且可直接输入字面值(不用字符串)
parseInt(0xaf); // 175
- 在没有字母的情况下也可以不用字符串
parseInt("1110", 2) === parseInt(1110, 2); //true
parseInt(11, 5) // 6
- 任意
奇怪的进制都能转换,大小写不影响结果
parseInt("Az", 36); // 395
1.2 Number():(八进制,十六进制)
使用Number()
,入参为八进制、十六进制数,数值或字符串均可
Number(070); // 56
Number("0xAF"); // 175
2. 10进制转X进制
使用Number.prototype.toString([radix])
let a = 160;
a.toString(16); // "a0"
(-19).toString(2); // "-10011"
3. X进制转Y进制
互相转换比较麻烦,我们可以先转换成10进制,再转换成Y进制
// e.g. BIN to HEX
parseInt("101101", 2).toString(16); // "2d"
// e.g. HEX to OCT
parseInt(0x67).toString(8); // "147"
总结
- X转10:
parseInt(Xstr [, Xradix])
- 10转X:
numObj.toString(Xradix)
- X转Y:
parseInt(Xstr [, Xradix]).toString(Yradix)
缩写
- 二进制:Binary,BIN
- 八进制:Octal,OCT
- 十进制:Decimal,DEC
- 十六进制:Hexadecimal,HEX