Cuando me refiero a elementos en formularios HTML, a menudo uso el nombre/valor del atributo de nombre. Entonces, si el nombre del formulario es "form01", me refiero al formulario que escribe document.forms.form01 . Aquí hay un ejemplo:
let title = document.forms.form01.title; console.log(title.value); <form name="form01"> <input type="text" name="title" value="Hello World"> </form> document.forms es una HTMLCollection, pero en la documentación de DOM Standard #interface-htmlcollection no dice nada sobre la posibilidad de usar un nombre directamente como propiedad (creo que se llama "propiedad con nombre") en una colección como eso, como cuando uso document.forms.form01 para referirme al elemento de formulario. Por el contrario, la documentación en realidad señala que este es "un artefacto histórico", entonces, ¿debería evitar usarlo?
¿Pueden ayudarme a encontrar documentación para esto? O que es una característica (agradable) que se puede usar o que es algo que se debe evitar.
Si no está marcada como una función en desuso u obsoleta, ¡puede continuar usándola!
Detalles adicionales en MDN Web Docs sobreHTMLCollection indican lo siguiente:
La interfaz
HTMLCollectionrepresenta una colección genérica (objeto similar a una matriz similar a los argumentos ) de elementos (en el orden del documento) y ofrece métodos y propiedades para seleccionar de la lista.
En cuanto a las propiedades con nombre en HTMLCollection (como señaló @Kaiido ), esta sección establece:
Los nombres de propiedad admitidos son los valores de la lista que devuelven estos pasos:
Deje que result sea una lista vacía.
Para cada elemento representado por la colección , en orden de árbol :
Si el elemento tiene una ID que no está en el resultado , agregue la ID del elemento al resultado .
Si el elemento está en el espacio de nombres HTML y tiene un atributo de
namecuyo valor no es la cadena vacía ni está en el resultado , agregue el valor del atributo denamedel elemento al resultado .Devolver resultado .
También tenga en cuenta que NodeList se encuentra en la misma sección ( colecciones de estilo antiguo ) que HTMLCollection. Consulte NodeList en MDN Web Docs.
La mención anterior de [LegacyUnenumerableNamedProperties] (como señaló @Kaiido ) solo indica que las propiedades nombradas no son enumerables (es decir, usar Array.from solo devolverá los elementos del índice).