包装器:Number、Boolean、String
包装器的两种写法:
new 包装器(值)
:返回的是一个对象(包装对象);包装器(值)
:返回的是一个原始类型;
所谓“包装对象”,就是分别与数值、字符串、布尔值相对应的 Number、String、Boolean 三个原生对象。这三个原生对象可以把原始类型的值变成(包装成)对象。
下面介绍的 api,如果忘记了,直接上 mdn 上搜即可。
Number
静态成员:
- isNaN
- isFinite
- isInteger:判断一个数据是否是整数
- parseFloat:将一个数据转换为小数
- parseInt:将以一个数据转换为整数,直接舍去小数部分
- parseInt、parseFloat:要求参数是一个字符串,如果不是字符串,则会先转换为字符串。从字符串开始位置进行查找,找到第一个有效的数字进行转换,如果没有找到,则返回NaN,左右空白字符会忽略。parseInt,可以传入第二个参数,表示将给定的字符串,识别为多少进制。
实例成员:
- toFixed方法:会有四舍五入
- toPrecision:以指定的精度返回一个数字字符串
Boolean
空
String
静态成员:
- fromCharCode:通过 unicode 编码创建字符串
实例成员:
- length:字符串长度
- charAt:得到指定位置的字符
- charCodeAt
- concat
- includes
- endsWith
- startsWith
- indexOf
- lastIndexOf
- padStart
- 常见应用场景:拼接时间时,前面补零。
- padEnd
- repeat
- slice:从某个位置取到某个位置;位置可以是负数;
- substr:从某个位置开始取,取指定的长度;位置可以是负数;
- substring:从某个位置取到某个位置;不可以是负数;参数位置是可调换的。
- toLowerCase
- toUpperCase
- split:分割字符串
- trim
- trimEnd
- trimStart
练习
以下练习可以使用之前书写的通用函数。
- 找到某个字符串中出现最多的字符,打印字符和它出现的次数。
// 示例
getTopFreqInArray("absadfgsDfafgsdfgsdfgsadfasdasvasdfsadfasdfa");
// => { char: 'a', frequency: 10 }
- 将一个字符串中单词之间的空格去掉,然后把每个单词首字母转换成大写。
// 示例
bigCamel("hello woRld js"); // => HelloWoRldJs
- 书写一个函数,产生一个指定长度的随机字符串,字符串中只能包含大写字母、小写字母、数字。
// 示例
getRandomString(20); // => xDw0bocdhScgwE7wMIFz
- 将字符串按照字符编码的顺序重新升序排序。
// 示例
strSort("bffdgwfafagfdgsfafa"); // => aaaabddfffffffgggsw
- 从一个标准的身份证号中取出用户的出生年月日和性别,保存到对象中。
// 示例
getInfoFromPID("524713199703020014"); // => { birthYear: 1997, birthMonth: 3, birthDay: 2, gender: '男' }