Alternanza di attributi senza valori

Supponiamo di avere un input disabilitato e un pulsante:

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

Facciamo in modo che ogni clic sul pulsante porti a un cambio di stato dell'input - da disabilitato ad abilitato e viceversa. Per iniziare, otteniamo i riferimenti ai nostri elementi in variabili:

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

E ora implementiamo quanto previsto:

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

Tuttavia, il problema può essere risolto con meno codice:

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

Spiegate come funziona il codice fornito.

Задание 2

Dati una checkbox e un pulsante. Fate in modo che ogni clic sul pulsante porti a un cambio di stato della checkbox.