That would be ridiculous because then what would 'hello' + 1 equal? Everyone would expect it to equal 'hello1'.
I'd expect "hello" - 1 to return NaN, since you can't perform numerical subtraction on something that isn't a number. That's exactly what Javascript does.
In the same way, I'd expect "hello" + 1 to return Nan, since you can't perform string concatenation on something that isn't a string, and you can't perform numerical addition on something that isn't a number.
Edited for clarity
It returns it because parseFloat("hello") = NaN, and NaN - 1 = NaN.
I think Javascript is broken here, and Python has it right.
Javascript thinks to itself 'hello' string concatenated with a 1 value.