What is Unobtrusive JavaScript?

Unobtrusive JavaScript is a general term that conveys a general philosophy, similar to the term
REST (Representational State Transfer). The high-level description is that unobtrusive
JavaScript doesn’t intermix JavaScript code in your page markup. For example, rather than
hooking in via event attributes like onclick and onsubmit, the unobtrusive JavaScript attaches
to elements by their ID or class, often based on the presence of other attributes (such as
HTML5 data- attributes).