Slice and Splice : wondering why they are different

Slice has 2 parameters, start index and end index
Splice has 2 parameters, start index and length (ignoring the third parameter for now)

Seeing as they do almost the same thing, why is there such a difference in the way parameters work?

Why dont both use start index and length notation, or start index and end index notation?

EDIT : they way slice uses the second parameter as index +1 rather than index also does my head in.

To get the second and third element :
using slice(1,2) makes sense. // (index 1, index 2)
using slice(1,3) doesnt makes sense // (index 1, index 3)
using splice(1,2) makes the most sense // (index 1, length 2)

They don’t do the same thing, is the basic answer. Slice copies a chunk of an array. Splice removes and/or inserts values from/into an array - you tell it where you want to remove from, how many items to remove, and what values you [optionally] want to insert. They look similar, but splice is for mutating an existing array, whereas slice is for copying bits of an array.

The functionality is different, hence the different names.
The sub array indexing should be the same.