TGViewer
JavaScript JavaScript @about_javascript · 1.29K subscribers
Post #1140 705
🎯 HTML attributes vs DOM properties

Разница между атрибутами и свойствами в HTML/DOM может быть запутанной, особенно когда названия совпадают. Кратко:

* Атрибут — часть HTML.
* Свойство — часть DOM-объекта.

Пример:


<input value="Hello">



const input = document.querySelector('input');
console.log(input.getAttribute('value')); // "Hello"
console.log(input.value); // "Hello"
input.value = 'World';
console.log(input.getAttribute('value')); // "Hello"


Значение атрибута остаётся неизменным, даже если свойство обновляется в JS. DOM-свойства могут не синхронизироваться с атрибутами после инициализации.

🔹Свойства могут отличаться от атрибутов


<input disabled>



input.hasAttribute('disabled'); // true
input.disabled; // true
input.removeAttribute('disabled');
input.disabled; // false


Свойство disabled — булево. Атрибут disabled работает как флаг: его наличие имеет значение, не важно, какое значение вы ему присвоили.


<input disabled="false">


Это всё равно disabled. Так работает HTML.

🔹Когда использовать атрибуты, а когда свойства?

* Используйте атрибуты, когда:

* Вам нужно установить начальное значение в HTML.
* Вы работаете с HTML-строкой.
* Вы хотите сохранить значение при сериализации (например, outerHTML).

* Используйте свойства, когда:

* Вы работаете с DOM в JS.
* Нужно прочитать или изменить текущее состояние элемента.

🔹Иногда стоит быть осторожнее


input.setAttribute('value', 'New');
console.log(input.value); // "New"


Иногда установка атрибута также влияет на свойство, но не всегда — зависит от элемента и конкретного атрибута/свойства.

https://jakearchibald.com/2024/attributes-vs-properties/
More from @about_javascript
  1. Sep 10, 2026⚡️ Вышел React 19.3 - View Transitions и Fragment Refs стали стабильными Что добавили: • А…
  2. Aug 31, 2026Форматирование JSON-кода Вы, вполне вероятно, хорошо знакомы с методом JSON.stringify(). А…
  3. Aug 4, 2026So Much to Print Оригинальная анимация газетного станка. https://codepen.io/jkantner/pen/v…
  4. Aug 4, 2026🔴 Тестовое собеседование с ТимЛидом Frontend-разработки в этот четверг 6 августа(в четвер…
  5. Apr 28, 2026photo post
  6. Apr 26, 2026🎨 Улучшаем веб-дизайн с AI Этот репозиторий предлагает навык для AI-агентов, который прео…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →