I understand strict type comparison with '===' and '!==' checking if the value and type are equal.
Comparing with '==' or '!=' will cast the variable to the value to be compared. So for example comparing a variable 'id' with null will cast 'id' value, meaning 0, '', null, undefined equals null.
I would like to know if the following two ways of writing a condition are really completely the same:
if (id != null) {}
and on the other hand
if (!id) {}