Difference between null and undefined (explained in 5 seconds)

null says

there is absolutely nothing.

undefined says

there should be something but I have nothing.

This is why the following function returns undefined when the argument is passed nothing because it means the function needs something but it has nothing.

function foo(bar){
    return bar;
}
console.log(foo()); // undefined

Brainteaser: So, if you query a filtered list of Person from database and there is no Person data. What should function return null or undefined?