Minha explicação provavelmente vai ser um pouco fajuta pois sou um iniciante que ainda esta aprendendo os fundamentos, mas se eu estiver errado por favor me corrijam. Não sei qual é a diferença em relação ao uso da memória mas aqui vai os conceitos de null e undefined:
É importante comentar que os dois tipos representam a ausência de valor.
Undefined: É um valor que não foi declarado. É praticamente como se você declarasse uma variável e não atribuisse nenhum valor a ela. Mas nesse caso, o undefined fala explicitamente que não tem valor.
Null: É um valor que representa o vazio. Quando colocado em uma variável é praticamente dizer que está guardando um valor "vazio". É interessante comentar que o null em operação aritméticas pode ser visto como 0, então se você fizer:
console.log(null ** 0) //vai dar 1