Объектная модель браузера – "браузероспецифичная" часть языка, являющаяся прослойкой между ядром и объектной моделью документа. Основное предназначение объектной модели браузера – управление окнами браузера и обеспечение их взаимодействия. Каждое из окон браузера представляется объектом window, центральным объектом BOM.
Помимо управления окнами, в рамках объектной модели браузера, браузерами обычно обеспечивается поддержка следующих сущностей:
управление фреймами;
поддержка задержки в исполнении кода и зацикливания с задержкой;
системные диалоги;
управление адресом открытой страницы;
управление информацией о браузере;
управление информацией о параметрах монитора;
ограниченное управление историей просмотра страниц;
поддержка работы с HTTP cookie[4].
Объектная модель документа
Объектная модель документа – интерфейс программирования приложений для HTML и XML-документов. Согласно DOM документу можно поставить в соответствие дерево объектов, обладающих рядом свойств, которые позволяют производить с ним различные манипуляции:
получение узлов;
изменение узлов;
изменение связей между узлами;
удаление узлов.
Основной синтаксис
Обзор
В JavaScript определены следующие типы:
Number ;
String ;
Boolean ;
Object:
Function ;
Array ;
Date ;
RegExp ;
Null ;
Undefined ;
Error.
Числа
Все числа в JavaScript согласно спецификации "64-битные двойной точности – формат IEEE 754". В JavaScript нет типа Integer, что может привести к неожиданным последствиям, например:
0.1 + 0.2 = 0.30000000000000004
Поддержаны стандартные арифметические операторы, такие как сложение, деление, остаток от деления и так далее. Здесь стоит вспомнить встроенный объект Math содержащий математические методы:
Math.sin(3.5);
d = Math.PI * r * r;
С использованием встроенной функции parseInt() можно преобразовать строку в число. Вторым параметром эта функция принимает базу, которую стоит всегда указывать во избежание казусов:
parseInt("123", 10) //результат – "123"
parseInt("010", 10) //результат – "10"
а если не указать базу то получим:
parseInt("010") //результат – "8"
Это произошло, потому что parseInt посчитало число восьмеричным из-за предшествующего 0.
Если функция не может преобразовать строку в число, она возвращает специальное значение NaN (сокращение от "Не Число"):
parseInt("Привет", 10) //результат – "NaN"
Результатом математической операции с NaN всегда будет NaN:
NaN + 5 //результат – "NaN"
Можно проверить значение на равенство NaN переменной с помощью встроенной функции isNaN():
isNaN(NaN) //результат – "true"
В JavaScript есть также значения Infinity и -Infinity:
1 / 0 //результат – "Infinity"
-1 / 0 //результат – "-Infinity"
Строки
Strings в JavaScript это последовательность символов. Для представления одного символа можно использовать строку единичной длины. Для получения длины строки и объектов есть свойство length: