Странное изменение значения переменной. Javascript
Павел Арчибасов

Парни, имею такой код:

function bin(f, s) {
a.innerHTML = f.toString(2);
b.innerHTML = s.toString(2);
if ((s = a.innerHTML.length - b.innerHTML.length) > 0) someAction();
if ((s = a.innerHTML.length - b.innerHTML.length) < 0) anotherAction();
return [ f, s ];
}

Я ожидаю, что функция вернет значения f и s неизменными, однако они меняются каким-то непонятным для меня образом. Например, если я передам в функцию числа 3 и 12, то в результате получу [3, -2], наоборот, 12 и 3, вернет [12, 2]. Если 10 и 10 → [10, 0], 11 и 32 → [11, -2]. И так далее. Виновники — два оператора if. Если их закомментировать, переменные остаются без изменений. В чем может быть причина такого поведения?

Вопрос не в том, как написать этот код лучше, а в том почему это работает именно так, а не иначе.

Павел Арчибасов около 1 месяца назадСпасибо 0
1 чел.