Explain how null and undefined differ in JavaScript.

null is an intentional absence of any value, set manually, while undefined means a variable is declared but lacks a value.

let a; // undefined
let b = null; // null