- •Лекции по JavaScript Что такое javascript?
- •Среда разработки программ JavaScript
- •Что умеет javascript?
- •Переменные
- •Типы переменных
- •Массивы Создание
- •Аргументы
- •Описание, примеры
- •Методы объекта Array
- •Многомерные массивы
- •Объект Boolean
- •Объект Number
- •Объект Math
- •Объект String
- •Основы работы со строками
- •Использование кавычек
- •Встроенные функции
- •Строки и числа
- •Преобразование «Число → строка»
- •Преобразование «Строка → число»
- •Объект Date
- •Объект Global
- •Операторы и операции Операторы Javascript
- •Оператор break
- •Оператор comment
- •Оператор continue
- •Перебор свойств, кроме унаследованных
- •Оператор function
- •Оператор if...Else
- •Оператор return
- •Оператор var
- •Оператор while
- •Оператор with
- •Логические операторы
- •Операции сравнения
- •Арифметические операции
- •Битовые операции
- •Логические операции
- •Строковые операции
- •Операции присваивания
- •Прочие операции Условная операция
- •Операция запятая
- •Операция delete
- •Операция in
- •0 In langs // возвращает true
- •4 In langs // возвращает false Операция instanceof
- •Операция new
- •Операция this
- •Операция typeof
- •Операция void
- •Порядок выполнения операций
- •Функции
- •Функции - объекты
- •Области видимости
- •Параметры функции
- •Работа с неопределенным числом параметров
- •Пример передачи функции по ссылке
- •Пример использования:
- •Сворачивание параметров в объект
- •Объекты, свойства и методы Основные понятия
- •Объект JavaScript
- •Создание объектов с помощью инициализатора
- •Создание объектов с помощью конструктора
- •Создание методов
- •Изменение прототипа объекта
- •Удаление объектов
- •Вывод информации в строку состояния
- •Объект location
- •Проигрывание wav-файлов
- •Плавное изменение цвета фона документа html
- •Объект window.
- •Динамическое изменение страницы
- •Прокручивание документа
- •Параметры
- •Закрывающий тег
- •Аргументы
- •Значение по умолчанию
- •Параметр alt Описание
- •Значение по умолчанию
- •Параметр value Описание
- •Синтаксис
- •Параметры
- •Закрывающий тег
- •События
- •Когда использовать
- •Через свойство объекта
- •Основные события javascript
- •If (условие)
- •Способы открытия нового окна с помощью js
- •Модальное окно
- •X: 1, // добавляем свойство
- •Установка веб-сервера Apache и средств программирования под Windows
- •Что такое хостинг и где взять место под страницу.
- •Объектная Модель. Детали.
- •Языки на базе классов и языки на базе прототипов
- •Определение класса
- •Подклассы и наследование
- •Добавление и удаление свойств
- •Отличия. Резюме.
- •Пример Employee
- •Создание иерархии
- •Свойства объекта
- •Наследование свойств
- •Добавление свойств
- •Более гибкие конструкторы
- •И снова о наследовании свойств
- •Локальные и наследуемые значения
- •Определение взаимоотношений экземпляров
- •Глобальная информация в конструкторах
- •Нет множественного наследования
Оператор break
Оператор прерывает текущий цикл for и while, передавая управление первому оператору после цикла.
Применение оператора
Следующий пример добавляет элемент к форме в предположении, что все элементы содержат числовые значения. Если встречается значение "0", цикл прекращается.
function CheckValues(form){
var total
for (I=0; I<=form.elements.length; I++){
if (element[I].value="0"){
break;}
else{
total +=I;
document.write("Текущая строка: "+total);}
}
return total
}
Оператор comment
Комментарии - это специальные замечания программиста, чтобы объяснить, что делает данный скрипт, и они игнорируются интерпретатором. JavaScript поддерживает следующий стиль комментариев:
Однострочные комментарии начинаются с символа (//).
Многострочные комментарии начинаются /* и заканчиваются */.
Примеры
Комментарии пишутся так же как в Java
// Эта форма комментария // действует только на одну строку, // то есть на каждой новой строке // нужно выставлять знак комментария.
А это уже код скрипта...
/* А эта форма комментария действует на сколько угодно строк до тех пор, пока не натолкнётся на закрывающий значок, зеркально отражающий начальный. */
А теперь опять код скрипта...
Не путайте комментарии HTML и комментарии JavaScript! Это разные языки.
Оператор continue
Передает управление оператору проверки истинности условия в цикле while и оператору обновления значения счетчика в цикле for. Важное отличие от оператора break заключается в том, что оператор continue не прерывает цикл, а делает следующее.
В цикле while, это переходит назад к условию.
В цикле for, это переходит к модернизированному выражению.
Следующий пример демонстрирует цикл while, содержащий оператор continue, который выполняется, когда переменная i равна 3.
i = 0;
n = 0;
while (i<5) {
i ++;
if (i == 3)
continue;
n + = i
}
Оператор do..while
Задает цикл с проверкой условия после каждой итерации
Синтаксис
do
statement
while (condition)
Аргументы
statement - Блок или вызов javascript, который будет выполняться, пока верно условие condition
condition - Выражение будет вычислено каждый раз во время цикла. Если оно верно, statement будет выполнено еще раз, если нет - контроль пойдет на операторы после do..while
Описание, примеры
В следующем примере оператор do..while выполнится хотя бы один раз и продолжит выполняться, пока i<5.
i = ...
do {
i += 1;
document.write(i);
} while (i < 5)
Оператор for
Создает цикл с тремя необязательными выражениями, заключенными в круглых скобках и разделенными точкой с запятой, сопровождаемыми блоками утверждений, выполненных внутри цикле:
for (initialExpression; condition; updateExpression)
{
...строки кода...
}
где
Выражение initialExpression используеться для инициализации переменной счетчика, которую можно создать с помощью оператора var. Это выражение необязательно.
Выражение condition, которое вычисляется на каждом проходе через цикл. Если это условие истинно, то выполняются условия внутри цикла. Это условие необязательно. Если оно опущено, то условие всегда считается равным истинному, тогда цикл продолжается до ошибки или до оператора break.
Выражение updateExpression, вообще используется для изменения значения переменной счетчика. Оно тоже является необязательным. В этом случае можно обновлять значение переменной счетчика внутри цикла.
Примеры
Оператор for создает цикл ,продолжающийся до тех пор пока переменная счетчика i меньше чем девять, увеличиваю i на однин после каждого прохода через цикл.
for (var i = 0; i < 9; i++)
{
n += i
myfunc(n)
}
Следующий пример создает цикл for, продолжающийся до наступления ошибки или выполнения оператора break. Переменная счетчика увеличивается на при каждом проходе цикла:
for (var i = 0; ; i+=2)
{
...строки кода...
}
Продемонстрируем пример, который представляет цикл, не обновляющий счетчик. Если счетчик нигде не будет обновлен в теле цикла, его значение так и останется равным 0:
for (var i = 0; i < 10;)
{
...строки кода...
}
Пример. Нахождение простых чисел в интервале от 2 до 100
<html>
<body>
<script type="text/javascript">
<!--
var b=true;
for(var i=3; i<100; i++)
{
for(var j=2; j<i; j++)
{
if(i%j==0){b=false;break;}
else b=true;
}
if(b) document.writeln("<pre>"+i+"</pre>");
}
// -->
</script>
</body>
</html>
Оператор for...in
Присваевает переменной поочередно все свойства объекта. Для каждого свойства цикл for...in выполняет операторы, содержащиеся в теле цикла. Синтаксис
for (property in object)
{
...statements...
}
Цикл for...in является полезным средством для отладки благодаря своей способности вывести на экран все свойства объекта в одном цикле.
Аргументы
property - Переменная, которой последовательно присваиваются названия свойств объекта. Может быть объявлена при помощи var, но не будет при этом локальной для цикла
object - Объект, свойства которого перебираются
statement - Блок или javascript-вызов для вызова на каждой итерации
Описание, примеры
Конструкция for..in - единственный в javascript способ перебрать все свойства объекта.
var a = {
p1: 1,
p2: 2
}
for(var p in a) {
alert(p); // p1, затем p2
// к значению каждого свойства прибавить 1
a[p] = a[p] + 1;
}
Большинство свойств встроенных объектов javascript перебираться в цикле for..in не будут, так как помечены специальным внутренним флагом DontEnum. Этот флаг нельзя получить или поменять.
Пример: встроенное свойство toString
// объявим объект
var a = {
p1: 1
}
// у него есть свойство toString
alert(a.toString)
// унаследованное от Object.prototype
alert(a.toString === Object.prototype.toString) // true
for(p in a) {
// в этом цикле свойства toString не будет
alert("Property name:"+p+" value:"+a[p])
}
Порядок перечисления свойств не определен. Поэтому, если во время итерации добавить свойство к объекту - цикл может по нему пройти позже или не пройти никогда, в зависимости от того, куда это новое свойство встанет во внутренней хэш-таблице интерпретатора javascript.
При удалении свойства во время итерации - если цикл по нему еще не прошел, то он не пройдет в дальнейшем.