JavaScript is non-strictly typed language as Java,for example.
As we know, it converts value of result dependently upon context:
\"2\" + \"3\" r
\"2\" + \"3\"
You're confusing casting (the * / + operators will do this) with logical evaluation (which &&, ||) do.