On Aug 23, 3:39 pm, Pops <[EMAIL PROTECTED]> wrote:
>   $("start").value -= 1*$("rows").value;    // <- WORKS AS EXPECTED

$('start').value is a STRING, but no -= operator is available for
strings, so it converts the value to a number.

>   $("start").value += 1*$("rows").value;      // <- BUG!!

Aha - .value is a STRING, but operator += IS defined for Strings, so
it uses it and appends to the value.


> To me,  that looks look like a JS type casting bug or inclusive
> addition bug?

It's not a bug, but a confusion about how the operators and type
conversion apply. IMO += should not be overloaded for strings, to
avoid exactly this type of problem. The fact that SOME of the built-in
types have special operator overloads, but users of the language
cannot overload any operators (except, indirectly, toString()), is a
language design flaw, IMO.

Reply via email to