枚举
在计算机科学中,**枚举**类型是一种数据类型,它包含一组有限的命名值。
HTML 枚举属性
在HTML中,枚举属性是具有有限且预定义的文本值集的属性。例如,全局HTML dir
属性有三个有效值:ltr
、rtl
和auto
。
每个枚举属性都有一个默认值,用于属性存在但没有值(值缺失)的情况,以及一个默认值,用于属性被分配无效值的情况。与布尔属性 HTML属性(无论值是否存在、省略或无效,只要属性存在就始终为真)不同,对于枚举HTML属性,省略值时的默认值可能与无效值时的默认值不同。例如,全局HTML contenteditable
属性有两个有效关键字:true
和false
。如果属性存在但未设置值,则值为true
。如果设置了值,但无效,例如contenteditable="contenteditable"
,则该值映射到第三种状态inherit
。
ARIA 枚举属性
作为HTML的ARIA状态和属性也具有枚举属性。如果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
)仅访问可枚举键。