You might be thinking that null & undefined is the same. You have to know that, spoiler alert, they are not. What I mean by this is: yes both have many similarities, but deep down it's totally different.
It's confusing, I know. But you need to know these basic things. So let's jump!
Similarity
Both of them usually called nullish value: have either null or undefined value. These also listed as falsy values, which are:
nullundefinedfalse-
0(zero) —(also for-0and0n) -
“”(empty string) -
NaN(Not a Number)
Falsy values itself means that the value will be generated as false on the boolean approach.
Difference
From the definition, null is an intentional absence of a value. While undefined is a default value for a variable with no value assigned.
const bowl = null; //null
const bowl; //undefined
As mentioned above, both are falsy values. Even so, it works this way:
null == undefined
null !== undefined
Why? Because when it comes to type, it's totally different. Javascript defines null as an empty object, hence if you do typeof null it will show "object". While undefined is a primitive value. The type of undefined will be "undefined" itself.
If we try to make equalization on a number format, null will be identified as a 0 (zero), while undefined will not be recognized as any number (NaN). Like this:
const addNum = 8 + null // 8
const addNum = 8 + undefined // NaN
Conclusion
Both undefined and null have the same value, the same nullish and falsy, but each has a different type. Hence use in its own place.

Oldest comments (3)
Looks like you covered all the differences between
nullandundefined. Though I already have an opinion, would like to know what do you think about their application? Which one should be used when? More precisely why null exist if undefined was already there to signify abswnce of value?please people, when ever you can, use
undefined. it even is javascripts default value when something is not there.Why did you write "the bowl is not exist"? The correct form would be "the bowl doesn't exist".