javaScript原始类型之string常用方法

字符串可以调用方法吗?

        字符串之所以能调用方法本质是 javastring 内部做了一些处理。具体表现来说,从内存去读取变量保存的值,发现是 string 类型时。javascript 内部会创建一个 String 类型的实例,若调用了方法,他会去在这个 string 实例上查找(没找到继续在原型上查找),有就调用,反之就抛出错误,最后销毁这个 string 实例.

// 书写的代码
const s1 = 'WFattTiger'
const s2 = s1.substring(0,1)


// 内部执行的过程
const s1= 'WFattTiger'
const storage =new String('WFattTiger') // 从内存中读取到 WFattTiger ,然后创建实例
const s2 = storage.substring(0,1) // 调用实例上的方法
storage = null // 销毁实例

注:这也就是为啥string、number 和 boolean 这些原始类型也可以拥有对象能力的原因

string常用属性和方法

length一个属性,表示字符串中字符的数量

charAt

一个方法,接收一个参数,返回参数指定索引位置的字符

注:charCodeAt, fromCharCode, codePointAt,normalize

concat

一个方法,接收任意个参数,返回一个由多个参数拼接成字符串
slice

一个方法,可传递1到2个参数(第一个参数表示子字符串开始位置,第二个表示子字符串结束到位置),返回一个子字符串。如果是参数是负数的话,表示字符串长度加上负数的值的位置

注1: substr 方法第二个参数是指子字符串长度。如果第二个参数为负数的话,会转换成0

注2: substring不管是第一参数,还是第二参数如果是负数都转换成0

indexOf

一个方法,可传递1到2个参数(第一个参数表示要搜索的字符串,第二个表示搜索的开始位置),返回索引下标值,未找到返回-1。

注:lastIndexOf方法 是从字符串末尾开始搜索

includes

一个方法,可传递1到2个参数(第一个参数表示要搜索的字符串,第二个表示搜索的开始位置),返回布尔值,存在则为true,反之为false

注:startsWith从头部开始搜索,如果第一个字符不匹配的话则也为false。同理,endsWith从尾部开始搜索

trim

一个方法,不接收参数。返回一个删除前后空格的副本字符串。

注:trimLeft,trimRight两个方法分别是只删除开始或者末尾空格

repeat

一个方法,接收1个整数参数。表示要将字符串复制多少次,然后返回拼接所有副本后的结果。

padStart

一个方法,可以接收1到2个参数(第一个参数是指返回的字符串长度,第二个参数是指填充的字符串空)。返回一个填充好的字符串

注1:如果第一个参数小于字符串的长度,返回的是字符串本身的副本。

注2:第二个参数不传,默认为空

注3:padEnd方法是从尾部开始填充

replace

一个方法,接收2个参数(第一个参数可以是字符串或者RegExp,第二个参数可以是字符串或者方法),将第二个参数替换掉第一个参数。

注:如果要全局都替换掉,那第一个参数必须是RegExp,并且带全局标识

split

一个方法,接收1到2个参数(第一个参数可以是字符串或者RegExp,第二个表示返回值数组的长度),通过第一个进行分割成一个数组并返回。

toLocaleUpperCase

一个方法,不接收参数,将字符转换成大写。

注1:toUpperCase方法也是将文字符转换成大写。

注2:toLocaleLowerCase和toLowerCase,将文字符转换成小写。

注3:尽量使用toLocaleLowerCase,toLocaleUpperCase这两方法

match

一个方法,接收一个参数(可以是字符串,可以是RegExp),返回一个可迭代的伪数组。数组中index表示匹配参数的索引下标,第一项是匹配的值

注:search方法返回的是匹配参数的索引下标值

localeCompare

一个方法,接收一个参数,比较参数和字符串顺序(字母表排序),字符串排在参数后面为1,相等为0,反之为-1

注1:因为string本质会创建string对象,所以也可以使用object原型上的toString,valueOf,toLocaleString三个方法。

注2:字符串的原型也暴露了迭代(@@iterator)方法,所以也可以使用 forof 进行遍历,...语法进行解构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值