Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в Веб программирование.doc
Скачиваний:
81
Добавлен:
07.11.2018
Размер:
4.42 Mб
Скачать

Прототипы

Каждый объект имеет свойство prototype, которое определяет его структуру. Пример использования прототипирования объектов приведен ниже:

Book.prototype.paper = false;

Book.prototype.isPaperBook = function() {

if (this.paper) alert("This is a paper book");

else alert("This is not a paper book");

}

function Book(isPaper) {

if (isPaper) this.paper = true;

}

var myBook = new Book(true);

myBook.isPaperBook(); //выведет фразу «This is a paper book»

В этом примере показано создание метода объекта и свойства, причем, в прототипе описано, что свойство paper имеет значение false. Однако в конструкторе это свойство переопределяется, если при создании объекта конструктору передается параметр со значением true.

Хеш-таблицы в JavaScript

Объект Object в JavaScript представляет собой обычный ассоциативный массив или "хэш". Он хранит любые соответствия "ключ => значение" и имеет несколько методов. Следующие два варианта создания объекта эквивалентны:

var o = new Object()

var o = {}

Есть два способа добавления свойств в объект. Первый - точка, второй - квадратные скобки:

o.test = 5// эквивалентные записи

o["test"] = 5

var name = 'test'

o[name] = 5

Имя свойства "test" является ключом в ассоциативном массиве, по которому лежит значение 5.

Доступ к свойству осуществляется так же через точку или через квадратные скобки:

alert(o.test)

alert(o['test'])

Если у объекта нет такого свойства, то результат будет 'undefined'

Еще один пример:

var h = new Object();

h.property = 10;

var s = 'ty';

alert(h['proper' + s]);// то же самое, что и h.property.

Удаление свойств осуществляется с помощью оператора delete:

var h = new Object();

h['property'] = 10;

alert(delete h['property']);

//выведет на экран true

alert(h['property']);

//выведет на экран undefined

Последний пример – перебор всех свойств объекта:

var h = new Object();

...

var props = '';

for(var i in h)

props += i + ' : ' + h[i] + '\n';

alert(props);

Следует заметить, что переменная i внутри цикла содержит имя свойства, а не его значение.

Встроенные объекты String, Array, Date, Math Объект String

Экземпляр объекта String можно объявить двумя способами:

var имя_переменной = new String ( " строковое_ значение " )

var имя_переменной = "строковое_значение"

Свойства String:length — количество символов (включая пробелы) в строке; prototype — свойство (прототип), позволяющее добавить новые свойства и методы ко всем создаваемым строковым объектам, если уже существующих недостаточно.

Пример: создаем новый метод для всех строковых объектов. Содержание этого метода определяется пользовательской функцией myFunc.

<!-- пример pr17 -->

<html>

<head>

<title>Наша начальная страница</title>

</head>

<body>

<SCRIPT type="text/javaScript">

function myFunc() {

return "Шура";

}

String.prototype.myName= myFunc;

var mystring=new String("Балаганов")

mystring += " Автор этой книги - " + mystring.myName();

document.write (mystring);//Балаганов Автор этой книги - Шура

</script>

</body>

</html>

Методы объекта String:

big (), small () – помещает текст строки внутрь парного тега <big> или <small>

bold ()/italics () – помещает текст строки внутрь парного тега <bold>/<i>

fixed () – помещает текст строки внутрь парного тега <tt>

fontcolor (цвет), fontsize (размер) – помещает текст строки внутрь парного тега <font> с установленным атрибутом цвета, размера,

link (интернет-адрес) – преобразует строку в гиперссылку, указывающую на адрес, переданный в качестве параметра

charCodeAt (номер символа) – возвращает код символа, номер которого передан в качестве параметра, в формате Unicode,

fromCharCode (список кодов символов Unicode, разделенных запятыми) – возвращает строку, созданную из символов, Unicode-коды которых переданы в качестве параметров. Текущая строка не изменяется.

concat (список строковых значений, разделенных запятыми) – объединяет текущую строку со всеми строками, переданными в качестве аргументов

charAt (номер символа) – возвращает символ, номер которого передан в качестве параметра

indexOf (подстрока, начало поиска) – возвращает номер позиции подстроки в текущей строке. Второй параметр задает номер символа, с которого начинается поиск, если этот параметр пропущен, то поиск начинается с начала строки.

lastIndexOf (подстрока, начало поиска) – то же самое, что и indexOf, но поиск ведется до конца строки. Т.обр., фактически возвращается последняя позиция подстроки в текущей строке.

slice (начало фрагмента, конец фрагмента) – возвращает фрагмент строки в виде объекта. Если второй параметр пропущен, выбираются все символы до конца строки. Последний символ во фрагмент не включается.

split (разделитель, лимит) – возвращает массив, строк, полученнх в результате разделения текущей строки. Символ-разделитель, по которому строка будет делиться на подстроки, передается первым параметром. Второй параметр, если он присутствует, задает лимит количества элементов в результирующем массиве.

substr (начало фрагмента, конец фрагмента) – возвращает фрагмент строки, заданной длины. Если второй параметр опущен, то выбираются все символы до конца строки,

substring (начало фрагмента, конец фрагмента) - возвращает фрагмент строки, последний символ во фрагмент не включается

toLowerCase ()/toUpperCase () – конвертирует все символы строки в нижний регистр/

в верхний регистр

toString () – возвращает значение строки.

Объект Array

Свойства Array: length — количество элементов в массиве; prototype — свойство, позволяющее добавить новые свойства и методы ко всем созданным массивам.

Методы Array: concat (список добавляемых элементов) – возвращает массив, получившийся в резуль-тате объединения текущего массива и элементов, перечисленных в списке. join (раздели-тель) – возвращает строку, получившуюся в результате слияния значений всех элементов, разделенных разделителем;

pop () – удаляет последний элемент массива и возвращает его. Если массив пуст, возвращает undefined;

shift () – удаляет первый элемент массива и возвращает его;

unshift (список добавляемых элементов) – возвращает массив, получившийся в результате объединения текущего массива и элементов, перечисленных в списке, причем элементы вставляются в начало текущего массива;

push (список добавляемых элементов) – добавляет в массив элементы, перечисленные в списке, и возвращает новую длину массива. Список может содержать другие массивы.

reverse () – возвращает массив, порядок элементов которого изменен на противоположный;

sort (функция сортировки) – возвращает массив, заполненный отсортированными элементами текущего массива. Функция сортировки должна принимать два параметра и возвращать одно из следующих значений: 1, если первый больше второго, -1, если второй больше первого, и 0, если они одинаковы. Если функция сортировки опущена, то выполняется символьная сортировка.

slice (индекс первого элемента, индекс последнего элемента) – возвращает массив, образованный их элементов текущего массива, от первого элемента включительно до последнего исключительно. Если индекс последнего элемента пропущен, выбираются все элементы до конца массива.

splice (индекс первого элемента, количество удаляемых элементов, список добавляемых элементов, разделенных запятыми)

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

Свойства Number

MAX_VALUE — константа, значение которой равно 1.7976931348623157е+308.

MIN_VALUE — константа, значение которой равно 5е-324.

NEGATIVE_INFINITY - число, меньшее, чем Number.MIN_VALUE.

POSITIVE_INFINITY - число, большее, чем Number.MAX_VALUE.

NaN — константа, имеющая значение NaN (Not a Number).

prototype — свойство, играющее такую же роль, что и в случае объекта String.

Методы Number

toExponential (число) - представляет число в экспоненциальной форме;

toFixed (количество) - представляет число в форме с фиксированным количеством цифр после точки;

toString (основание) - возвращает строковое представление числа в системе счисления с указанным основанием.

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

Свойства Math (Math.свойство)

E - постоянная Эйлера,

LN10 - значение натурального логарифма числа 10,

LN2 - значение натурального логарифма числа 2,

LOG10E - значение десятичного логарифма экспоненты (числа в),

LOG2E - значение двоичного логарифма экспоненты,

PI - значение постоянной п,

SORT1_2 - значение квадратного корня от 1/2,

SORT2 - значение квадратного корня из 2.

Методы Math ( Math .метод (параметры) )

аbs (число) — возвращает модуль (абсолютное значение) числа;

асоs (число) — возвращает арккосинус числа;

asin (число) — возвращает арксинус числа;

atan (число) — возвращает арктангенс числа;

atan2(x, у) — возвращает угол в полярных координатах точки (угол в радианах между горизонатальной осью и прямой, проведенной через начало координат и точку с координатами х и у);

cos (число) — возвращает косинус числа;

sin(число) — возвращает синус числа;

tan (число) — возвращает тангенс числа.

round (число) — округляет число до ближайшего целого;

ceil (число) — округляет число до ближайшего целого – большего или равного;

floor (число) — округляет число до ближайшего целого – меньшего или равного;

ехр (число) — возвращает число е в степени число;

log (число) — возвращает натуральный логарифм числа;

max (число1,число2) — возвращает большее из чисел: число1 или число2;

min (число1,число2) — возвращает меньшее из чисел: число1 или число2;

pow (число1,число2) — возвращает число1 в степени число2;

sqrt(число) — возвращает квадратный корень из числа;

random() — возвращает случайное число между 0 и 1;

Приведем пример возведения числа в степень: alert(Math.pow(10,3)); //выведет 1000

<!--пример pr18: функция вычисления площади круга -->

<html>

<head>

<title>Функция вычисления площади круга </title>

</head>

<body>

<script type="text/javascript">

function sq(r) {

document.write("Задали r= ", r ," для функции.","<BR>")

return Math.PI*r * r;

}

var r=2;

document.write("Площадь круга равна ",sq(r),".")

</script>

</body> </html>