HTML5

基盤(Infra)

 編集:2022.08.01 by T.A.

プリミティブ データ型

null

値 null は、値を欠いていることを指示するために利用される。null は、 JavaScript null 値 [ECMA-262] と交換可能に利用される。

真偽値

真偽値(boolean)は、[true または false]をとる。

バイト

バイト(byte)は[8 個のビットが成す並び]であり、その と称される下層の数を表す、範囲「0x00 ~ 0xFF」*1に入る["0x" と後続する 2 個の ASCII 16 進数字(大文字)]として表現される。

*1 この範囲は、原文からは、表記上の範囲しか意味しないように解釈できそうだが、他所の記述から(値は無符号な数として扱われている)、数量的な範囲と両義的と見受けられる。

0x40 は、バイト であり、その値は 64 である。

ASCII バイト は、範囲「0x00(NUL) ~ 0x7F(DEL)」に入るバイトである。ここに記したように、ASCII バイトには、[ASCII format for Network Interchange [RFC20] の § Standard Code に挙げられている表現]が丸括弧で括られて後続 ─ ただし、0x28、0x29 は除く。それらに対しては、順に、"(left parenthesis)"、"(right parenthesis)" が後続*1

次の結果は、符号位置 U+0049 (I) になる:
UTF-8 復号する(0x49「I」)
バイト列

バイト列 (byte sequence / bytes)は、0 個以上のバイトからなる連列であり、各バイトを space で分離して表現される。

どのバイトも範囲「0x20(SP) ~ 0x7E(~)」内に入るバイト列は、文字列としても記され得るが、実際の文字列と混同されないよう、引用符に代えて バッククォート(backtick:"`")で括られる。

バイト列[0x48 0x49]は、`HI` とも表現される。

`Content-Type` などの HTTP ヘッダは、バイト列である。

バイト列の 長さ(length)は、それが包含するバイトの個数である。

バイト小文字化する ときは、所与の(バイト列 入力)に対し、次を返す:
入力 を成す各[バイト ∈ { 0x41(A) ~ 0x5A(Z) }]を[バイト + 0x20]に置換して得られるバイト列
バイト大文字化する ときは、所与の(バイト列 入力)に対し、次を返す:
入力 を成す各[バイト ∈ { 0x61(a) ~ 0x7A(z) }]を[ バイト - 0x20 ]に置換して得られるバイト列
2 つのバイト列 A、B が バイト大小無視 で合致するとは、次が満たされることをいう:
バイト小文字化する( A ) = バイト小文字化する( B )

¶省く

同型に復号する ときは、所与の(バイト列 入力)に対し、次をいずれも満たす文字列 出力 を返す:
符号位置

符号位置(code point)は Unicode 符号位置であり、その と称される下層の数を表す、範囲「U+0000 ~ U+10FFFF」*1に入る[「U+」と後続する 4 ~ 6 個の ASCII 16進数字(大文字)]として表現される。

注釈: 訳語の “符号位置” は Unicode に特有であり、他の符号化法の“符号点”に相当する。

*1 バイトのときと同じく、この範囲も[表記上の範囲, 数量的な範囲]を両義的に意味すると見受けられる。

注釈: 符号位置の名前は、Unicode 標準にて定義され、ASCII 大文字化されて表現される。[UNICODE]

次の各種 符号位置の集合が定義される:

文字列

文字列 は、0 個以上の[符号単位(code unit)とも称される、無符号 16ビット整数]からなる連列である、文字列は、JavaScript 文字列 とも称される。

符号単位列[0xD83D、0xDCA9、0xD800]が成す文字列は、符号位置を包含するものと解釈されるときは、符号位置列[U+1F4A9、U+D800]になる。

文字列の 長さ(length)は、それが包含する符号単位の個数とする。

文字列の 符号位置長さ は、それが包含する符号位置の個数とする。

スカラー値文字列 は、次を満たす文字列である:

それを成す すべての符号位置はスカラー値である

¶省く

ASCII 文字列 は、ASCII 符号位置のみからなる文字列である。

ASCII 小文字化する ときは、所与の(文字列 入力)に対し、次を返す:

入力 を成す各 ASCII 英大文字を、それぞれに対応する ASCII 英小文字に置換して得られる文字列
【他に解釈しようがない場合を除き、入力 を改変することはない ? 単に“何か を ASCII 小文字化する”と記された場合に限り、“何か ← ASCII 小文字化する(何か)”の略記を表す(が、特にアルゴリズムの中では、この種の略記は可能な限り避けている)。この節に現れる、文字列を返す他のアルゴリズムも同様。】

ASCII 大文字化する ときは、所与の(文字列 入力)に対し、次を返す:

入力 を成す各 ASCII 英小文字を、それぞれに対応する ASCII 英大文字に置換して得られる文字列

2 つの文字列 A、B が ASCII 大小無視 で合致するとは、次が満たされることをいう:

ASCII 小文字化する(A) = ASCII 小文字化する(B)
【和訳では、文字列 A、B が ASCII 大小無視で合致することを、“A = 大小無視 B”とも表記する。】【和訳では、ASCII 大小無視の代わりに ASCII 小文字化する(または大文字化する)を利用して、等価な記述に変形することもある(そうした方が簡潔になる所など)。】

ASCII 符号化する ときは、所与の(文字列 入力)に対し、次を走らす:

¶省く

ASCII 復号する ときは、所与の(バイト列 入力)に対し、次を走らす:

¶省く

改行文字を剥ぐ ときは、所与の(文字列 S)に対し、次を走らす:

¶省く

改行文字を正規化する ときは、所与の(文字列 S)に対し、次を走らす:

¶省く

前後の ASCII 空白列を剥ぐ ときは、所与の ( 文字列 S ) に対し、次を返す:

S の[先頭、末尾]から連続する最長の ASCII 空白並びを、それぞれ S から除去した結果

ASCII 空白を剥いで縮約する ときは、所与の(文字列 S)に対し、次を走らす:

¶省く

ASCII 空白を読み飛ばす

区切子で厳密に分割する

¶省く

ASCII 空白で分割する

¶省く

カンマで分割する

¶省く

連結する

¶省く

データ構造

¶省く

リスト

リスト(list)は、仕様レベルの型である。その各インスタンスは、有限個の アイテム(item)からなる有順序連列である。

【IDL 連列型の値は、リストとして扱われ、リスト用の各種[演算/定義/表記]が利用されることもある。逆に、一定の条件を満たすリストは、IDL 連列型の値として扱えるものとされている。】

表記を簡便にするため、リストを表出するリテラル構文も利用できる ─ そのためには、リストを成す各アイテムをカンマで分離した上で、全体を文字「《」「》」で括る。リスト用の index アクセス構文も利用できる ? そのためには、角括弧「[」「]」の内側に 0 番から数える index を与える。index は、存在について述べる場合を除いて、範囲を超えられない。

例 としてリスト《"a", "b", "c", "a"》 が与えられた下では、例 [1] は 文字列 "b" を表す。

単に“新たなリスト”と記されたときは、他が指定されない限り、0 個のアイテムからなる新たなリストを作成することを表す(すなわち、空/《 》)。したがって、リストでもある他の仕様レベルの型も同様になる(例: “新たな有順序集合”)。【この規約は、この訳による追加。】

¶省く

スタック

スタック

¶省く

キュー

キュー

¶省く

集合

¶省く

マップ

¶省く

構造体

¶省く

JSON

¶省く

forgiving-base64

¶省く

名前空間

¶省く