特点
- Object构造函数会根据传入值的类型返回相应的基本包装类型实例
- 引用类型和基本包装类型的主要区别在于对象的生存期
- 基本包装类型只存在于一行代码执行瞬间,随后被销毁
- 基本类型是没有方法的,但当调用特定方法时,其实后台自动完成了如下处理
创建一个基本包装类型的实例
在这个实例上调用指定的方法
销毁这个实例 - 不建议使用对应的构造函数来创建基本类型,应使用对象字面量的方式
Boolean类型
- 创建方式
// 通过调用new Boolean()构造函数,传入true或者false创建
let bol = new Boolean(true);
方法
- valueOf( ):返回false或true
- toString( ):返回字符串false或true
基本类型与引用类型的布尔值区别
- typeof对基本类型返回boolean,对引用类型返回objcet
- 使用instanceof测试Boolean对象会返回true,基本类型会返回false
Number类型
创建方式
// 通过调用new Number()构造函数,传入数字创建Number对象
const num = new Number(0);
方法
- valueOf( ):返回对象表示的基本类型的数值
- toLocaleString( )和toString( ):返回字符串形式的数值
- toFixed( ):方法会按照指定的小数位返回数值的字符串表示,如果转换的小数位小于数值本身的小数位,以最近那位进行四舍五入,可带有0到20个小数位
- toExponential( ):返回指数表示法(e),接受一个输出结果的小数位参数
- toPrecision( ):可能返回固定大小格式,也可能返回指数格式;具体规则是看哪种格式最合适。接受一个参数,表示数值的所有数字位数(不包括指数部分),可带有1到21位小数
String类型
创建方式
// 通过调用new String()构造函数,传入字符串创建String对象
const str = new String("str");
字符方法
- valueOf( ),toLocaleString( ),toString( ):都返回对象所表示的基本字符串值
- chartAt( ):接受一个基于0的字符位置的参数,并返回对应位置的字符
- charCodeAt( ):接受一个基于0的字符串位置的参数,并返回对应位置的字符编码
操作方法
- concat( ):将多个字符串拼接起来,形成新的字符串,不改变原来的字符串
- slice( ),substr( ),substring( ):这三个方法都会返回一个被操作字符串的一个字串(也不会改变原来的字符串),接受一到两个参数,第一个参数指定字符串的开始位置,第二个参数(在指定的情况下)表示字符串到哪里结束。slice( )和substring( )第二个参数指定的是字符串最后一个字符后面的位置,而substr( )的第二个参数指的是字符串长度。如果不穿第二个参数,则将字符串长度作为结束的位置;
当这三个方法传入负数时,slice( )方法将传入的负值与字符串的长度相加,substr( )将负的第一个参数加上字符串长度,第二个参数转换为0,substring( )将所有参数都转换为0
substr( )方法未来有可能废弃,应尽量使用substring( )方法替代
字符串位置方法
- indexOf( ):从字符串的起点位置开始搜索出给定的字符串,并返回这个字符的位置,未找到返回-1;
- lastIndex( ):从字符串的末端搜索出给定的字符串,并返回这个字符串的位置,未找到返回-1;
- trim( ):创建一个字符串的副本,删除前置及其后缀的所有空格,然后返回结果
字符串转换大小写方法
- toUpperCase( )和toLocaleUpperCase( ):都是将字符串转换为大写
- toLowerCase( )和toLocaleLowerCase( ):都是将字符串转换为小写
字符串的模式匹配方法
- match( ):只接受正则表达式或RegExp对象,返回一个数组,第一项是与整个模式匹配的字符串,之后的每一项(如果有)保存着与正则表达式中的捕获组匹配的字符串
- search( ):接受参数与match( )相同,返回字符串第一个匹配项的索引,如果没有找到匹配项,则返回-1,而且search( )方法始终是顺序查找
- replace( ):接受两个参数,第一个是RegExp对象或字符串(这个字符串不会转换成正则表达式),第二个参数可以是一个字符串或者一个函数。如果第一个参数是字符串,那么指挥替换第一个子字符串,如果想替换所有子字符串,唯一的办法就是提供一个正则表达式,而且要指定g标志。如果接受的第二个参数为函数,在只有一个匹配项(即与模式匹配的字符串)的情况下,会向这个函数传递3个参数:模式匹配的项、模式匹配项在字符串中的位置和原始字符串。在正则表达式中定义了多个捕获组的情况下,传递给函数的参数依次是模式的匹配项、第一个捕获组的匹配项依次类推,但最后两个依然是匹配项在字符串中的位置和原始字符串。此函数返回一个字符串。表示应该替换的匹配项使用的函数作为replace()方法,可以实现更加精细的替换操作
- split( ):基于指定的分隔符将一个字符串分隔成多个子字符串,并将结果放在一个数组中。分隔符可以为字符串也可以为RegExp对象。第二个参数可以指定数组的大小,一般确保返回的数组不会超过既定大小
字符串比较方法
localeCompare( ):返回一个数字来指示一个参考字符串是否在排序前面或之后或与给定字符串相同,其结果如下:
- 如果字符串在字母表中应该排在字符串参数之后,则返回一个负数(大多情况下是-1,具体值要视实现而定)
- 如果字符串等字符串参数,则返回0
- 如果字符串在字母表中应该排在字符串参数之前,则返回一个整数(大多情况下是1,具体值要视实现而定)
属性
- length:字符串长度,不算字节
其他
- 有些浏览器支持直接通过字符串[查询位置]来访问字符的方法