Лабораторные работы МИРЭА JavaScript (1017114), страница 4
Текст из файла (страница 4)
<script type="text/javascript">
<!--
var Buf=""; //Пустая строка
Buf=100+" - число сто<br>";
Buf+=(parseInt("50")+50)+" - число сто<br>";
document.write(Buf);
//-->
</script>
</body>
</html>
</html>
Примеры использования простейших преобразований типов:
var myVar = "3.14159",
str = ""+ myVar,// в string
int = ~~myVar, // в integer
float = 1*myVar, // во float
bool = !!myVar, // в boolean - все непустые строки и числа кроме 0 будут true
array = [myVar]; // в array
Конвертирование в даты (new Date(myVar)) и регулярные выражения (new RegExp(myVar)) нужно делать с использованием конструкторов.
Операторы языка JavaScript
Операторы JavaScript напоминают общеизвестные операторы языка С++.
Унарные операторы
- | Изменение знака на противоположный |
! | Дополнение. Используется для реверсирования значения логических переменных |
++ | Увеличение значения переменной. Может применяться и как префикс, и как суффикс |
-- | Уменьшение значения переменной. Может применяться и как префикс, и как суффикс |
Бинарные операторы
- | Вычитание |
+ | Сложение |
* | Умножение |
/ | Деление |
% | Остаток от деления |
Операторы для работы с отдельными битами
& | И |
| | ИЛИ |
^ | ИСКЛЮЧАЮЩЕЕ ИЛИ |
~ | НЕ |
Операторы сдвига
>> | Сдвиг вправо |
<< | Сдвиг влево |
>>> | Сдвиг вправо с заполнением освобождаемых разрядов нулями |
Операторы отношения
> | Больше |
>= | Больше или равно |
< | Меньше |
<= | Меньше или равно |
== | Равно |
!= | Не равно |
В условных операторах также применяются логические операторы: || (ИЛИ) и && (И).
Оператор присваивания и его комбинации
Допускается комбинирование оператора присваивания с другими
= | Присваивание |
+= | Сложение или слияние строк (n=n+7; аналог. n+=7;) |
–= | Вычитание (n=n-7; аналог. n-=7;) |
*= | Умножение |
/= | Деление |
>>= | Сдвиг вправо |
<<= | Сдвиг влево |
>>>= | Сдвиг вправо с заполнением освобождаемых разрядов нулями |
&= | И |
|= | ИЛИ |
^= | ИСКЛЮЧАЮЩЕЕ ИЛИ |
Условные операторы
В языке JavaScript два условных оператора: if-else и ?:.
Пример оператора if-else
if(Vol<2)
{
b=true;
ss="w002.htm";
}
else if(Vol>100)
{
b=true;
ss="w100.htm";
}
Пример оператора ?:
b = (Vol<2 || Vol>100) ? true:false;
Пример оператора switch - case:
switch(variable) {
case value_1: {
//блок операторов_1
break;
}
case value_2: {
//блок операторов_2
break;
}
case value_n: {
//блок операторов_n
break;
}
default: {
//блок операторов по умолчанию
}
}
Операторы цикла
В языке JavaScript три оператора цикла: for, for-in, while.
Пример оператора for
for(i=0; i<n; i++)
{
text+=" ";
}
Пример оператора for-in
var sprops="<H2>Свойства объекта window</H2>"
for(props in window)
sprops+="<b>"+props+"</b><xmp>"+":"+window[props].substr(0,90)+"</xmp><br>";
document.write(sprops);
Пример оператора while
i=0;
while(i<n)
{
text+=" ";
i++;
}
Кроме этих операторов в организации цикла могут участвовать еще два оператора: break (выход из цикла) и continue (переход на следующий шаг).
Прочие операторы
. | Доступ к полю объекта. ( document.write(Buf); ) |
[ ] | Индексирование массива ( dim[i] ) |
( ) | Изменение порядка вычислений или передача параметров функции |
, | Разделение выражений в многократном вычислении |
Пример оператора “запятая”
for(i=0; i<n; i++, j++)
Функции JavaScript
Функции являются одним из наиболее важных строительных блоков кода в JavaScript. Функции состоят из набора команд и обычно выполняют какую-то одну определенную задачу (например суммирование чисел, вычисление корня и т.д.). Код помещенный в функцию будет выполнен только после явного вызова этой функции.
Первый способ
Объявление функций
//Объявление функции
function имяФункции(переменная1, переменная2){
//Код функции
}
//Вызов функции
имяФункции(переменная1, переменная2);
Второй способ
//Объявление функции
var имяфункции=function(переменная1, переменная2)
{
//Код функции
}
//Вызов функции
имяфункции(переменная1, переменная2);
имяфункции задает имя функции. Каждая функция на странице должна иметь уникальное имя. Имя функции должно быть задано латинскими буквами и не должно начинаться с цифр.
переменная1, переменная2 являются переменными или значениями, которые можно передавать внутрь функции. В каждую функцию может быть передано неограниченное количество переменных.
Обратите внимание: даже если в функцию не передаются переменные не забывайте вставлять круглые скобки "()" после имени функции.
Обратите внимание: имена функций в JavaScript чувствительны к регистру.
Пример JavaScript функции
Функция messageWrite() в примере ниже будет выполнена только после нажатия на кнопку.
Обратите внимание: в этом примере используется событие onclick. События JavaScript будут подробно рассмотрены далее в данном учебнике.
Пример
<html>
<head>
<script type='text/javascript'>
// Функция выводит текст на страницу
function messageWrite() {
document.write('Данный текст был выведен на страницу с помощью JavaScript!');
}
</script>
</head>
<body>
<input type='button' value='Нажми на меня' onclick='messageWrite()' />
</body>
</html>
Передача функциям переменных
Вы можете передавать функциям неограниченное количество переменных. Обратите внимание: все манипуляции над переменными внутри функций на самом деле производятся не над самими переменными а над их копией, поэтому содержимое самих переменных в результате выполнения функций не изменяется.
Пример
/* Зададим функцию, которая прибавляет к переданной переменной 10 и выводит результат на страницу */
function plus(a){
a=a+10;
document.write('Вывод функции: ' + a+'<br />');
}
var a=25;
document.write('Значение переменной до вызова функции: '+a+'<br />');
// Вызовем функцию передав ей в качестве аргумента переменную a
plus(a);
document.write('Значение переменной после вызова функции: '+a+'<br />');
Чтобы обращаться к глобальной переменной из функции, а не ее копии используйте window.имя_переменной.
Пример
function plus(a){
window.a=a+10;
}
var a=25;
document.write('Значение переменной до вызова функции: '+a+'<br />');
plus(a);
document.write('Значение переменной после вызова функции: '+a+'<br />');
Команда return
С помощью команды return можно возвращать из функций значения.
Пример
<html>
<head>
<script type='text/javascript'>
//Функция sum возвращает сумму переданных в нее переменных
function sum(v1,v2){
return v1+v2;
}
</script>
</head>
<body>
<script type='text/javascript'>
document.write('5+6=' + sum(5,6) + '<br />');
document.write('10+4=' + sum(10,4) + '<br />');
</script>
</body>
</html>
Встроенные функции
Помимо определяемых пользователем функций в JavaScript существуют еще и встроенные функции. К примеру встроенная функция isFinite позволяет проверить является ли переданное значение допустимым числом.
Пример
document.write(isFinite(40)+'<br />');
document.write(isFinite(-590)+'<br />');
document.write(isFinite(90.33)+'<br />');
document.write(isFinite(NaN)+'<br />');
document.write(isFinite('Это строка')+'<br />');
Обратите внимание: полный список встроенных функций JavaScript Вы можете найти в Справочнике.
Локальные и глобальные переменные
Переменные которые объявляются в теле функции называются локальными. К таким переменным можно обращаться только внутри функций, в которых они были определены. После завершения выполнения кода функции такие переменные уничтожаются. Это значит, что в разных функциях могут быть определены переменные с одинаковым именем.
Переменные, которые создаются вне кода функций называются глобальными переменными к таким переменным можно обращаться из любого места кода.
Если переменная объявлена без префикса var внутри функции она тоже становится глобальной. Глобальные переменные уничтожаются только после закрытия страницы.
Пример
<html>
<head>
<script type='text/javascript'>
//Объявим глобальные переменные var1 и var2
var var1="var1 существует";
var var2;
function func1() {
//Присвоим var2 значение внутри функции func1
var var2="var2 существует";
}
//Из другой функции выведем содержимое переменной var1 и var2 на страницу
function func2() {
//Выводим содержимое переменной var1
document.write(var1 + '<br />');