这是五个以”S”开头的方法,为了不在以后的使用中混淆,特记录如下:
substr() 、substring()、slice():
这三个方法都会返回被操作字符串的一个子字符串,而且也都接受一或两个参数。第一个参数指定子字符串的开始位置,第二个参数(在指定的情况下)表示字符串到哪里结束。具体来说,substring()、slice()的第二个参数指定的是子字符串最后一个字符后面的位置。而substr()的第二个参数指定的则是返回的字符个数。如果没有给这些方法传递第二个参数,则将字符串的末尾作为结束位置。
- 对原始字符串有影响吗?
substr() 、substring()、slice()这三个方法都不会修改调用他们的字符串的值,而是返回一个基本类型的字符串值,对原始的字符串没有任何的影响。 - 那如果传入负数会发生什么呢?
slice()方法会将传入的负值(第一个和第二个参数都是这样)与字符串长度相加,如果第二个参数小于第一个参数那么返回空字符串;substr()将负的第一个参数加上字符串的长度,而将负的第二个参数转换成0,第二个参数转换成0意味着将会返回一个空字符串;substring()会将所有的负数转换成0,而且,当第二个参数小于第一个参数时,会自动将第一个和第二个参数调位。
slice()也是数组方法:除了返回一个新数组外,其余的使用同上。
split():
这个方法可以基于指定的分隔符将一个字符串分割成多个子字符串,并将结果放在一个数组中。分割符可以是字符串,也可以是一个RagExp对象。
它还可以接受第二个参数,用来指定数组的大小。
splice():
这个方法属于数组的操作方法,使用这种方法的方式有如下3种:
- 删除:可以删除任意数量的项,只需指定两个参数:要删除的第一项的位置和要删除的项数。
- 插入:提供三个参数:起始位置,0(要删除的项数)和要插入的项。如果要插入多个项,可以再传入第四、第五、第六乃至更多的参数。
- 替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项。同插入一样,只不过第二个参数设置为大于0的数,就可以在指定位置进行替换了。
这个方法会直接在原数组上进行修改,返回一个数组为从原数组中删除的项(如果没有删除值,则返回一个空数组)。