Урок 8. Объекты Number, Math и Date

Объект Number (число)

Числа в JavaScript можно представить в различных системах счисления, то есть в системах с различными основаниями: 10 (десятичной), 16 (шестнадцатеричной) и 8 (восьмеричной).

Функция преобразования из десятеричной в шестнадцатеричную форму:

    function to16(n10) {
        hchars = "0123456789abcdef"
        if (n10 > 255) return null
        i = n10 % 16
        j = (n10 - i) / 16
        rezult = "0x"
        rezult += hchars.charAt(j)
        rezult += hchars.charAt(i)
        return rezult
    }
    document.writeln(to16(16), " ", to16(100), " ", to16(178))

Функция преобразования из десятеричной в двоичную форму:

    function to2(n10) {
        if (n10 < 2) return "" + n10 // чтобы результат был строковый
        i = n10 % 2
        j = (n10 - i) / 2
        return to2(j) + i
    }
    document.writeln("<p>", to2(7), " ", to2(15), " ", to2(178))

Объект Math (математика)

Объект Math предназначен для хранения некоторых математических констант (например, числа пи) и выполнения преобразования чисел с помощью типичных математических функций. Доступ к свойствам и методам объекта Math обеспечивается следующими выражениями:

Math.свойство
Math.метод (параметры)

Функция для решения квадратного уравнения:

function q_eq(a,b,c) {
	var root = new Array()
	var D = b*b - 4*a*c
	if (a == 0) {
		if (!(b==0)) {
			root[0] = -c/b
			root[1] = null
		}
		return root // единственный корень или нет корней
	}
	if (D == 0) { // одинаковые корни
		root[0] = -b/2/a
		root[1] = root[0]
	}
	if (D > 0) { // различные корни
		root[0] = (-b - Math.sqrt(D)) / 2 / a
		root[1] = (-b + Math.sqrt(D)) / 2 / a
	}
	return root
}
document.writeln("<p>(", q_eq(0,2,6), "); (", q_eq(1,-2,1), ");<br> (")
document.writeln(q_eq(3,4,-2.5), "); (", q_eq(2,0,5), ");</p>")

Объект Date (Дата)

Во многих приложениях приходится отображать дату и время. Сделать это можно так:

now = new Date()
document.writeln("Time: " + now.getHours() + ":" + now.getMinutes() + "<br>")
document.writeln("Date: " + (now.getMonth()+1) + "/" + now.getDate() + "/" + now.getYear())