什么是真正的 DOMString

What is a DOMString really?

本文关键字:DOMString 什么      更新时间:2023-09-26

我在阅读HTML规范时遇到了DOMString。在一些研究中,发现了以下有关它的数据:

来自 MDN:

DOMString 是一个 UTF-16 字符串。由于 JavaScript 已经使用了这样的字符串, DOMString 直接映射到字符串。

从 W3C 规范:

DOMString 是 16 位单元的序列。

但我仍然有以下问题:

  1. 实际上什么是DOMString,它的用途是什么?
  2. 为什么它被命名为 DOM字符串而不是 UTF16字符串?更具体地说,它与DOM有什么关系?
  3. 如果我用UTF-16编码一个String,它会变成DOMString吗?

它是一个独立于实现的 UTF-16 字符串 DOM 接口。

JavaScript 字符串

已经是 UTF-16 字符串,因此 JavaScript String的任何实例都自动也是DOMString实例。

该接口适用于字符串不是本机 UTF-16 序列的实现,因此如有必要,它们可以实现单独的类型以映射到DOMString。正如规范所述,需要独立于实现的接口的原因是"[确保]互操作性"。

为什么叫DOMString?大概是因为它与DOM有关。它与DOM有何关系?嗯,这是DOM标准的一部分。

以 3 种不同的Element.append()使用方式为例。

Element.append() 还允许您附加 DOMString 对象

这 3 个元素都是 DOMString(s)

document.body.append(
  Object.assign(document.createElement("h2"), {textContent: "Hello"}),
  
  new DOMParser().parseFromString(`<span> world</span>`, "text/html").body.firstChild,
 
 "!"
 
)
H2, SPAN {display:inline; FONT-SIZE: X-LARGE}