Чаргаванне атрыбутаў без значэнняў

Няхай дадзены заблакаваны інпут і кнопка:

html<input id="elem" disabled>
<input id="button" type="submit">

Давайце зробім так, каб кожнае націсканне на кнопку прыводзіла да змены стану інпута - з заблакаванага на разблакаваны і наадварот. Для пачатку атрымаем спасылкі на нашы элементы ў зменныя:

javascriptlet elem   = document.querySelector('#elem');
let button = document.querySelector('#button');

А цяпер рэалізуем задуманае:

javascriptbutton.addEventListener('click', function() {
  if (elem.disabled) {
    elem.disabled = false;
  } else {
    elem.disabled = true;
  }
});

Задачу, аднак, можна вырашыць меншай колькасцю кода:

javascriptbutton.addEventListener('click', function() {
  elem.disabled = !elem.disabled;
});
Задание 1

Тлумачце, як працуе прыведзены код.

Задание 2

Дадзены чэкбокс і кнопка. Зрабіце так, каб кожны клік па кнопцы прыводзіў да змены стану чэкбокса.