では、JavaScript と CSS を使って、slice の開始・終了インデックスがスライドして文字列を切り取る様子を可視化する簡単なアニメを作るイメージを作ります。
ここでは 文字列の各文字がブロックになって並び、開始〜終了範囲がハイライトされるアニメ です。
See the Pen slice anime visualization by MONO365 -Color your days- (@monoqlo365) on CodePen.
説明
strの文字を1文字ずつdiv.charに分割して並べる。- 開始インデックス
startと終了インデックスendを順にスライドさせる。 start <= i < endの文字をハイライト (highlightクラス) して、実際にslice(start,end)が切り取る範囲を視覚化。setIntervalで 0.5秒ごとにスライド。- 終了すると自動停止。
💡 ポイント
.highlightは色と拡大で「ここが切り取られる範囲」とわかるようにしている。- アニメを進めるごとに、開始と終了が右に移動するので、
sliceの動きを直感的に理解できる。 endを負の値にしてslice(-n)の挙動も同様に可視化可能。
では slice と substring の挙動を同じ画面で比較できるアニメにします。
- 上段:
slice(start,end) - 下段:
substring(start,end) - 同じインデックスでスライドさせ、違いが一目でわかるようにハイライトします。
See the Pen slice vs substring anime comparison by MONO365 -Color your days- (@monoqlo365) on CodePen.
説明
sliceは 緑色ハイライト、substringは オレンジ色ハイライト。- 開始・終了インデックスを毎ステップ 1 ずつ増やし、スライドさせる。
sliceの負の値は末尾からの位置に変換、substringの負の値は 0 とみなす。substringは終了 < 開始 の場合、自動で入れ替え。これで 挙動の違いが一目で理解できる。
💡 ポイント
- このアニメを動かすと、
slice(-3,4)とsubstring(-3,4)の違い(どの文字が切り取られるか)が一目でわかる。 - ボタンを押すとアニメ開始。時間間隔(
500ms)は調整可能。
