I had written the following code in a project
... return s && s.value || null
It works well for some days until a colleague did some code refactoring. In the beginning, s.value is a string value, and an empty string is not a valid value, so the code works well. After the refactoring, s.value became an integer, and this time
0 is a valid value. So you can imagine when
s.value === 0 the code above will return null instead of 0. It caused a bug!
Therefore please use the"
A || B" expression with caution!