js-区分清易混淆的slice,splice,substr,substring数组、字符串方法

slice() splice() split() substr() substring()
数组
字符串

数组

slice()

            - 可以从一个数组中截取指定的元素

            - 该方法不会影响原数组,而是将截取到的内容封装为一个新的数组并返回

            - 参数:

                1.截取开始位置的索引(包括开始位置)

                2.截取结束位置的索引(不包括结束位置)

                - 第二个参数可以省略不写,如果不写则一直截取到最后

                - 参数可以传递一个负值,如果是负值,则从后往前数

splice()

        - 可以用来删除数组中指定元素,并使用新的元素替换

                该方法会将删除的元素封装到新数组中返回

            - 参数:

                1.删除开始位置的索引

                2.删除的个数

                3.三个以后,都是替换的元素,这些元素将会插入到开始位置索引的前边

   arr.splice 方法可以说是处理数组的瑞士军刀。它可以做所有事情:添加,删除和插入元素。


        语法是:arr.splice(start[, deleteCount, elem1, ..., elemN])


        它从索引 start 开始修改 arr:删除 deleteCount 个元素并在当前位置插入 elem1, ..., elemN。最后返回已被删除元素的数组。

字符串

slice()

- 可以从一个字符串中截取指定的内容,并将截取到内容返回,不会影响原变量

        - 参数:

            第一个:截取开始的位置(包括开始)

            第二个:截取结束的位置(不包括结束)

                - 可以省略第二个参数,如果省略则一直截取到最后

            - 可以传负数,如果是负数则从后往前数

split()

        - 可以根据指定内容将一个字符串拆分为一个数组

        - 参数:

            - 需要一个字符串作为参数,将会根据字符串去拆分数组

                可以接收一个正则表达式,此时会根据正则表达式去拆分数组

substring()

        str.substring(start [, end])
返回字符串在 start 和 end 之间 的部分。
这与 slice 几乎相同,但它允许 start 大于 end。
例如:
        let str = "stringify";

// 这些对于 substring 是相同的
alert( str.substring(2, 6) ); // "ring"
alert( str.substring(6, 2) ); // "ring"

// ……但对 slice 是不同的:
alert( str.slice(2, 6) ); // "ring"(一样)
alert( str.slice(6, 2) ); // ""(空字符串)

substr()


str.substr(start [, length])
        返回字符串从 start 开始的给定 length 的部分。
        与以前的方法相比,这个允许我们指定 length 而不是结束位置:
                let str = "stringify";
alert( str.substr(2, 4) ); // 'ring',从位置 2 开始,获取 4 个字符
        第一个参数可能是负数,从结尾算起:
                let str = "stringify";
                alert( str.substr(-4, 2) ); // 'gi',从第 4 位获取 2 个字符

substr 有一个小缺点:它不是在 JavaScript 核心规范中描述的,而是在附录 B 中,它涵盖了主要由于历史原因而存在的仅浏览器特性。因此,非浏览器环境可能无法支持它。但实际上它在任何地方都有效。

相较于其他两个变体,slice 稍微灵活一些,它允许以负值作为参数并且写法更简短。因此仅仅记住这三种方法中的 slice 就足够了。

上一篇:山东亿网文交艺术品管理孟建州谈代码规范地重要性


下一篇:《每周一点canvas动画》——三角函数