|
нажимает на клавишу нашего
калькулятора с надписью “Enter”:
function getResult(form)
{
var result;
result = total + lastOperation + eval("0x" +
form.displayHex.value);
total = eval(result);
form.displayHex.value = dec2hex(total);
form.displayDec.value = total;
newnumber = true;
}
От только что описанной функции plusOp эта функция отличается лишь тем, что
она не изменяет значение переменной lastOperation (так как данная кнопка служит
для получения итогового результата, а не для выполнения арифметической
операции).
Рассмотрим функцию dec2hex, выполняющую преобразование десятичного числа в
шестнадцатеричное. Результат преобразования эта функция возвращает в виде
текстовой строки.
В начале своей работы функция dec2hex проверяет знак исходного числа.
Отрицательные числа преобразуются в положительные, при этом в переменную
bNegative записывается значение true.
Алгоритм преобразования десятичного числа в шестнадцатеричное основан на
делении исходного числа на 16 в цикле. Если целая часть результата деления,
вычисляемая с помощью метода Math.floor, оказывается меньше 16, цикл
завершается. В противном случае остаток от деления рассматривается как значение
текущего шестнадцатеричного разряда.
Для того чтобы получить символическое представление шестнадцатеричного числа
по его значению, мы извлекаем нужный символ из строки szHexTable, вызывая для
этого метод charAt:
szBuf=szHexTable.charAt(nRem);
szResult = szBuf.concat(szResult);
После завершения цикла функция вычисляет старшие разряды результата, а также
корректирует знак этого результата в соответствии с состоянием переменной
bNegative.
Электронные часы
С помощью сценария JavaScript и формы вы можете сделать достаточно сложные
электронные часы, которые будут показывать не только время, но и дату в
различных форматах с учетом смещения часового пояса (рис. 3.20).
Рис. 3.20. Электронные часы в документе HTML
Исходный текст документа HTML с электронными часами представлен в листинге 3.
10.
Листинг 3.10. Файл chapter3/clock/clock.html
Электронные часы
Электронные часы
|