文字列の開始位置から終了位置までの文字を取得する slice substring

文字列.slice(開始位置,[終了位置])
文字列.substring(開始位置,[終了位置])
sliceとsubstring の結果は同じ。引数に負の数を指定したときに違いがでる

console.log('abcdefg'.slice(0, 3));  // abc
console.log('abcdefg'.substring(0, 3));  // abc
console.log('abcdefg'.substring(3));  // defg

sliceは負の値の指定が出来る。 その場合、 末尾からの位置になる
前から普通に数える場合最初の”a”は0番目であるのに対して、後ろから数える場合、最初の”g”は0番目ではなく1番目になる

console.log("abcdefg".slice(-3));  // efg

substringは負の値の指定をすると値が0とみなされる。末尾からの取得はできない

console.log("abcdefg".substring(-3));  // abcdefg

slice と substring は開始位置が終了位置より大きくなった場合の挙動が違う
substringは開始と終了が入れ替わる

console.log("abcdefg".slice(6, 3));  // ''
console.log("abcdefg".substring(6, 3));  // 'def'

文字列の何文字目から何文字を取得する substr