slice和splice
slice(start, end) | splice(index,length,item1,...itemX) | |
参数 | start:必须. 要抽取的片断的起始下标。第一个字符位置为 0 end: 可选。 紧接着要截取的片段结尾的下标(不包含)。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。 | index参数:必须,整数,规定添加或者删除的位置,使用负数,从数组尾部规定位置。 length参数:必须,要删除的数量,如果为0,则不删除项目。 tem1,...itemX参数:可选,向数组添加的新项目。 |
是否改变原数组 | 否。返回新数组。若入参为(0),直接返回原数组。 | 是。会改变原数组。原数组为截取后剩余的内容。 |
能否对字符串操作 | 能 | 否 |
是否Vue变异方法 | 否 | 是 |
substring和substr
substring(start, stop) | substr(start, length) | |
参数 | start:表示子字符串的开始位置, stop:表示结束结果。 注意:第二个参数应该大于第一个参数。如果出现第一个参数大于第二个参数的情况,substring方法会自动更换两个参数的位置。 | start:子字符串的开始位置, length:子字符串的长度。 |
注意:全小写。都只能对字符串操作,不能直接对数组操作。
但是很有趣的是,使用call方法对obj操作,是先toString.call(obj),返回[object Object]再对[object Object]进行操作;
而使用call方法对数组操作,则是先array.toString(), 再进行操作。例如下面的代码,[1,2,3].toString()返回字符串"1,2,3",再对"1,2,3"进行substr(1,2),得到",2"
Array.prototype.substr().call([1,2,3], 1, 2)