Percent-encoding in practice
URLs can only carry a limited character set, so everything else travels as % plus two hex digits, a space becomes %20, a slash %2F, and UTF-8 characters become multi-byte sequences like %C3%A9 for é. Sysadmins meet this constantly: reading access logs, hand-crafting curl requests, debugging webhooks, and deciphering redirect chains where a URL has been encoded inside another URL (sometimes twice, if a decode still contains %25, decode again).
Component vs. full-URI mode
The two JavaScript encoders differ in one important way. Component mode (encodeURIComponent) encodes everything special, including /, ? and &, correct for a single query-string value. Full-URI mode (encodeURI) preserves those delimiters, correct when encoding a complete URL without breaking its structure. Using the wrong one is the classic cause of query values that swallow the rest of the query string. The decoder also converts + to space first, since HTML form encoding uses + where URLs use %20.
The parser
The parse section uses the browser's own URL implementation (the same one that resolves every link you click) so the split into protocol, credentials, host, port, path, query parameters and fragment is exactly what a browser sees. Handy for spotting the subtle stuff: a username smuggled before an @ in a phishing link, a non-default port, or a parameter that appears twice.