包装器: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

练习

以下练习可以使用之前书写的通用函数。

  1. 找到某个字符串中出现最多的字符,打印字符和它出现的次数。
  1. // 示例
  2. getTopFreqInArray("absadfgsDfafgsdfgsdfgsadfasdasvasdfsadfasdfa");
  3. // => { char: 'a', frequency: 10 }
  1. 将一个字符串中单词之间的空格去掉,然后把每个单词首字母转换成大写。
  1. // 示例
  2. bigCamel("hello woRld js"); // => HelloWoRldJs
  1. 书写一个函数,产生一个指定长度的随机字符串,字符串中只能包含大写字母、小写字母、数字。
  1. // 示例
  2. getRandomString(20); // => xDw0bocdhScgwE7wMIFz
  1. 将字符串按照字符编码的顺序重新升序排序。
  1. // 示例
  2. strSort("bffdgwfafagfdgsfafa"); // => aaaabddfffffffgggsw
  1. 从一个标准的身份证号中取出用户的出生年月日和性别,保存到对象中。
  1. // 示例
  2. getInfoFromPID("524713199703020014"); // => { birthYear: 1997, birthMonth: 3, birthDay: 2, gender: '男' }