傻傻分不清的splice与slice
身为前端er,在过去的几年经常使用这两个函数但是真的傻傻分不清,总是需要使用使用看API,或者TS定义,还是抵消,最好的办法还是脑子里彻底记住,毕竟漫威英雄啥的咱不是记得都门儿清吗。so,还是功夫用的不够。
这里就mark下两者的区别,用于记忆。
splice
单词含义
绞接,捻接
函数说明
Array.prototype.splice()
The
splice()
method changes the contents of an array by removing or replacing existing elements and/or adding new elements in place.
所以,当数组需要增删修改元素时,可以使用该方法。
注意,函数会改变数组本身。
slice
(切下的食物)薄片,片;小铲
单词含义
函数说明
String.prototype.slice()
The
slice()
method extracts a section of a string and returns it as a new string, without modifying the original string.
Array.prototype.slice()
The
slice()
method returns a shallow copy of a portion of an array into a new array object selected fromstart
toend
(end
not included) wherestart
andend
represent the index of items in that array. The original array will not be modified.
所以,当字符串或者数组需要获取子集时,可以使用该方法。
注意,函数不会改变字符串或数组本身。对于数组来说,slice返回的新数组只是浅拷贝。
结论
以上说明后,我们可以知道splice函数,array才有,但是slice方法,string,array都有各自实现。
写在最后
- 除了这两个函数,其实还有个相似的split,但因为更为常用,所以并不会记混
- 不得不说,理解的同时还是多用,这样更易强化记忆这些枯燥的知识点