Javascript / DOM に於ける　範囲表現 

# 範囲表現

:::note warn

**レギュレーション**

とりあえず何等かの範囲を表現する クラス / 関数 等を上げていくこととします。 関数の場合は引数名、クラスの場合は　プロパティ/関数名で それが 開始名 / 長さ / 終了名 のどれにあたるかを記録します。
また、 終了名 にあたるものが 範囲に含まれるかどうかもきろくします

:::

## JavaScript API

| 項目名 | 開始名 | 長さ | 終了名 | 終了が含まれるか |
| - | - | - | - | - |
| [Array.prototype.slice()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/slice) | start | - | end | いいえ |
| [String.prototype.substring()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/substring) | indexStart | - | indexEnd | いいえ |
| [Array.prototype.splice()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/splice) | start | deleteCount | - | - |
| [Array.prototype.copyWithin()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin) | start | - | end | いいえ |

Javascript の 標準メソッド群だと大体 index を元にした 範囲表現となるので基本的には end が含まれない のでは？感あります。

## DOM API

| 項目名 | 開始名 | 長さ | 終了名 | 終了が含まれるか |
| - | - | - | - | - |
| [HTMLInputElement](https://developer.mozilla.org/ja/docs/Web/API/HTMLInputElement) | selectionStart | - | selectionEnd | はい |
| [HTMLTextAreaElement](https://developer.mozilla.org/ja/docs/Web/API/HTMLTextAreaElement) | selectionStart | - | selectionEnd | はい |
| [EditContext](https://developer.mozilla.org/ja/docs/Web/API/EditContext) | selectionStart | - | selectionEnd | はい |
| [TextUpdateEvent](https://developer.mozilla.org/ja/docs/Web/API/TextUpdateEvent) | selectionStart | - | selectionEnd | はい |
| [TextUpdateEvent](https://developer.mozilla.org/ja/docs/Web/API/TextUpdateEvent) | updateRangeStart | - | updateRangeEnd | はい |
| [CharacterBoundsUpdateEvent](https://developer.mozilla.org/ja/docs/Web/API/CharacterBoundsUpdateEvent) | rangeStart | - | rangeEnd | はい |
| [AbstractRange](https://developer.mozilla.org/ja/docs/Web/API/AbstractRange) | startOffset | - | endOffset | はい |
| [Range](https://developer.mozilla.org/ja/docs/Web/API/Range) | startOffset | - | endOffset | はい |
| [Range](https://developer.mozilla.org/ja/docs/Web/API/Range) | startContainer | - | endContainer | はい |
| [StaticRange](https://developer.mozilla.org/ja/docs/Web/API/StaticRange) | startOffset | - | endOffset | はい |
| [StaticRange](https://developer.mozilla.org/ja/docs/Web/API/StaticRange) | startContainer | - | endContainer | はい |
| [TextTrackCue](https://developer.mozilla.org/ja/docs/Web/API/TextTrackCue) | startTime | - | endTime | はい |
| [TextFormat](https://developer.mozilla.org/ja/docs/Web/API/TextFormat) | rangeStart | - | rengeEnd | はい |
| [ViewTimeline](https://developer.mozilla.org/ja/docs/Web/API/ViewTimeline) | startOffset | - | endOffset | はい |
| [PerformanceResourceTiming](https://developer.mozilla.org/ja/docs/Web/API/PerformanceResourceTiming) | connectStart | - | connectEnd | はい |
| [PerformanceResourceTiming](https://developer.mozilla.org/ja/docs/Web/API/PerformanceResourceTiming) | domainLookupStart | - | domainLookupEnd | はい |
| [PerformanceResourceTiming](https://developer.mozilla.org/ja/docs/Web/API/PerformanceResourceTiming) | fetchStart | - | responseEnd | はい |
| [PerformanceResourceTiming](https://developer.mozilla.org/ja/docs/Web/API/PerformanceResourceTiming) | redirectStart | - | redirectEnd | はい |
| [PerformanceResourceTiming](https://developer.mozilla.org/ja/docs/Web/API/PerformanceResourceTiming) | requestStart | - | responseStart | はい |
| [PerformanceNavigationTiming](https://developer.mozilla.org/ja/docs/Web/API/PerformanceNavigationTiming/loadEventEnd) | domContentLoadedEventStart | - | domContentLoadedEventEnd | はい |
| [PerformanceNavigationTiming](https://developer.mozilla.org/ja/docs/Web/API/PerformanceNavigationTiming/loadEventEnd) | loadEventStart | - | loadEventEnd | はい |
| [AudioBufferSourceNode](https://developer.mozilla.org/ja/docs/Web/API/AudioBufferSourceNode) | loopStart | - | loopEnd | はい |
| [SVGTextContentElement](https://developer.mozilla.org/ja/docs/Web/API/SVGTextContentElement) | getStartPositionOfChar() | - | getEndPositionOfChar() | はい |
| [PerformanceMeasure](https://developer.mozilla.org/ja/docs/Web/API/PerformanceMeasure) | startTime | duration | - | - |

DOM での範囲表現はだいたい クラスによる表現の話となります。 その為、終了は基本的に含まれる形な模様。構造とするならそれはそう という話ではある。


以上。