「这是我参与11月更文挑战的第26天,活动详情查看:2021最后一次更文挑战」
我们常常定义一个字符串,并且字符串可以使用某个方法。你是奇怪,按道理来说他是原始值,身上不应该有方法和属性才对,为什么会这样呢?
这其实是JS会把它包装成一个对象,叫包装类对象,当调用某个属性时,其实是调用对应包装类身上的东西。所有字符串值类型的东西调用某给属性调用的就是String原型上的东西
下面来看看String的原型上都有哪些东西吧
length属性:返回字符串长度charAt方法:返回指定位置的字符;位置从0开始charCodeAt方法:返回指定位置的字符的Unicode编码concat方法:跟数组中的concat类似,用于连接两个字符串,返回新的字符串slice方法:跟数组中的slice也类似,用于返回从原字符串中截取的子字符串,不改变原字符串;传参规则跟数组中的slice方法一模一样:
用于从原字符串截取子字符串并返回,不改变原字符串。
当有两个参数时:第一个表示开始位,第二个是结束位(不含该位置)
只有一个参数时:则表示从该位开始,截取到最后并返回
不传参时:相当于是截取了整个字符串,可以理解为复制了一个一样的值
如果参数是负值:表示从倒数位置
如果第一个参数大于第二个参数:如slice(3,1),方法返回一个空字符串substring方法:也使用从原字符串中截取子字符串并返回,但有一些奇怪的规则,因此很多人不建议使用这个方法,优先使用slice。substr方法:也是从原字符串取出子字符串并返回;规则跟数组中的splice有点点相似:
如果两个参数:第一个参数表示开始位,第二个参数表示截取的子字符串的长度
当只有一个参数时:则表示从开始位开始,截取到原字符串最后
如果第一个参数是负数:表示倒数计算的字符位置
如果第二个参数是负数,将被自动转为0即截0位,因此会返回空字符串indexOf()和lastIndexOf():跟ES5中数组的indexOf和lastIndexOf类似,用于查找指定字符串在原字符串出现的位置,如果没有找到返回-1
indexOf从字符串头部开始匹配,lastIndexOf从尾部开始匹配
接受第二个参数时,indexOf第二个参数表示从该位置开始向后匹配;lastIndexOf第二个参数表示从该位置起向前匹配trim():用于去除字符串两端的空格,返回去除空格后的新字符串,不改变原字符串toLowerCase():用于将字符串全部转为小写形式的字符串返回,不改变原字符串toUpperCase():用于将字符串全部转为大写形式的字符串返回,不改变原字符串localeCompare():比较两个字符串Unicode编码大小,第一个大于第二个返回1,第一个小于第二个返回-1,相等返回0match():通过正则匹配原字符串是否有某个子字符串,返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回nullsearch():查找字符串中是否有某个字符串。返回值为匹配的第一个位置。如果没有找到匹配,则返回-1。replace():用于替换匹配的子字符串,一般情况下只替换第一个匹配(除非使用带有g修饰符的正则表达式)split():将字符串通过指定分隔符拆分成数组。按照什么拆分,什么就没有了includes:判断字符中是否包含什么,返回true或falsestartsWith:判断是不是以某字符串开头,返回true或falseendsWith:判断是不是以某字符串结尾,返回true或falserepeat():返回重复连接指定次数的字符串trimLeft()和trimStart():去除左边空格trimRight()和trimEnd():去除右边空格