枚举
在计算机科学中,枚举类型是一种由有限的命名值集组成的数据类型。
HTML 枚举属性
在 HTML 中,枚举属性是具有有限的、预定义文本值集的属性。例如,全局 HTML dir 属性有三个有效值:ltr、rtl 和 auto。与 HTML 标签名一样,HTML 枚举属性及其值不区分大小写,因此 LTR、RTL 和 AUTO 也可以工作。IDL 反射属性 HTMLElement.dir 也可以使用不区分大小写的值进行设置,但将始终返回规范中定义的规范格式(在此示例中为小写值)。有关更多信息,请参阅属性反射。
每个枚举属性都有一个默认值,用于当属性存在但没有值时(缺少值),以及一个默认值,用于当属性被分配无效值时。与布尔属性 HTML 属性不同——当属性存在时,无论值是存在、省略还是无效,它们都始终为 true——对于枚举 HTML 属性,省略值的默认值可能与无效值的默认值不同。例如,全局 HTML contenteditable 属性有两个有效的关键字:true 和 false。如果属性存在但未设置值,则值为 true。如果设置了值,但无效,例如 contenteditable="contenteditable",则该值映射到第三种状态 inherit。
ARIA 枚举属性
ARIA 状态和属性,作为 HTML,也具有枚举属性。如果 ARIA 属性在枚举列表中同时包含 true 和 false 值,它通常将省略的属性视为 false,将无效值视为 true,而空字符串或省略值的默认值取决于属性。
例如,aria-current 属性接受一个有限的值列表,包括 page、step、location、date、time、true 和 false。在这种情况下,如果属性不存在、是空字符串、存在但没有值,或者设置为 aria-current="false",则该属性为 false 并且不暴露给用户。列表中任何不在枚举值列表中的非空字符串值都将被视为设置了 aria-current="true"。
JavaScript 可枚举属性
在 JavaScript 中,可枚举属性是指其内部可枚举标志设置为 true 的属性,这是通过简单赋值或属性初始化器创建的属性的默认值。大多数迭代机制(例如 for...in 循环和 Object.keys)只访问可枚举键。
另见
- Boolean
- JavaScript 数据类型和数据结构
- HTML 标准中的枚举属性
- 属性反映