They do behave differently when the value is null.
null.toString()throws an error – Cannot call method ‘toString’ of nullString(null)returns – “null”null + ""also returns – “null”
Very similar behaviour happens if value is undefined (see jbabey’s answer).
Other than that, there is a negligible performance difference, which, unless you’re using them in huge loops, isn’t worth worrying about.