Начнем с самого главного - с вывода информации на экран монитора. Так как
JavaScript работает в браузере, то мы сможем вывести какие-либо данные только в окно браузера. Для вывода данных на экран монитора есть несколько способов, но сейчас познакомимся с методом
document.write() который выводит переданные ему данные в окно браузера. Например
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Сайт написанный с помощью JavaScript</title>
</head>
<body>
<script type="text/javascript" >
document.write("Привет Вам от JavaScript!");
</script>
</body>
</html>
Методом
document.write() можно выводить и теги, в том числе и теги
<script> с кодом JavaScript. Например
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Сайт написанный с помощью JavaScript</title>
</head>
<body>
<script type="text/javascript" >
document.write("<div>Это мой первый сайт на <span style='font-weight:bold;'>JavaScript</span></div>");
</script>
</body>
</html>
Но есть одна особенность. Дело в том, что метод
document.write() выводит содержимое переданных данных в так называемый поток. И если вызвать этот метод после загрузки всей страницы, то переданное содержимое просто заменит уже загруженную страницу.
Ни один язык программирования не обходится без переменных, с которыми можно производить какие-либо действия. В JavaScript тоже можно создавать переменные, которые могут содержать данные различных типов: числовой целый тип,числовой действительный тип, строковой тип и булевой тип (
false(ложь) и
true(истина)). Описываются переменные с помощью ключевого слова
var.
Код
var myVar="Это моя переменная";
var MyVar=10;
var booleanMyVar=true;
В принципе описывать с помощью ключевого слова
var необязательно. Но надо учитывать следующее. Все переменные, объявленные вне тела какой-либо функции, считаются глобальными. Если переменная объявлена в теле какой-либо функции без ключевого слова
var, то она тоже будет глобальной и к ней можно будет обратиться в дальнейшем из любой точки программы. Если же объявить переменную с помощью ключевого слова
var в теле функции, то она будет локальной и обратится к ней смогут только операторы, находящиеся в этой функции:
Код
var a=15;
function myFunction()
{
var f=55;
b=a+f;
}
myFunction();
alert("Переменная b равна "+b);
if (typeof(f)=="undefined")
alert("Переменная f - не объявленна");
else
alert("Переменная f равна "+f);
После запуска данного примера, должно появиться последовательно два сообщения о состоянии переменных. После проверки в таком варианте, уберите ключевое слово
var перед переменной
f, заново запустите скрипт и посмотрите на результат.
В примере был использован оператор
typeof, который возвращает в строковом виде тип переменной. Если переменная не существует, то оператор
typeof возвратит строку "
undefined".
Также в примере используется метод
alert(), который выводит диалоговое окно предупреждения, с текстом, переданным этому методу. Очень удобно использовать метод
alert () для отладки сценариев.
В языке JavaScript переменная может менять свой тип в любом месте кода:
Код
<script type="text/javascript">
a=45;
b=42;
document.write("a="+a+" b="+b);
a=b+"text";
document.write("<br>a="+a);
</script>
Преобразование типов переменных очень интересно реализовано в JavaScript. Преобразование числового типа переменной в строковый тип, осуществляется путем сложением числа со строковым значением, независимо от перестановки мест слагаемых. Например
Преобразовать переменную v1 из числового типа в строковый тип можно одним из следующих способов
Код
v1=""+v1;
v1=v1+"";
v1=v1+"159";
v1="abc"+v1;
Преобразовать строку в число можно путем вычитания одного значения из другого, независимо от их типа и позиции. Приведу примеры
Код
t1="467";
t1=t1-0;
t2="777";
t3=t2-300;
t4="551";
t5=11-t4;
t6="567"-"765";
Подобные преобразования будут замечательно работать, до тех пор, пока строковые значения будут состоять только из цифр. А что будет, если строковая переменная будет содержать алфавитные символы? Например
Код
s1="344ads";
s1=s1-0; // - каков будет результат???
В таких случаях JavaScript выдаст значение
NaN ("not a number" - не число). И работать с таким значением в дальнейшем нет возможности. Проверить переменную содержит ли она значение
NaN можно методом
isNaN().
Код
myVar=Var1-Var2;
if (isNaN(myVar))
{
alert ("Переменная содержит значение NaN");
}
else
{
//тут можно работать с переменной myVar
}
Также в JavaScript можно создавать массивы. Создать массив можно следующей записью, называемой конструктором:
Код
var myArray = new Array();
Заполнять массив нужно задавая значение каждому элементу
Код
myArray[0]="JavaScript";
myArray[1]="PHP";
myArray[2]="web design";
...
Можно при создании массива указать его размер следующим образом
Код
var myArray = new Array(15);
В данном случае будет создан массив из 15 элементов, причем каждый из элементов будет содержать значение
null.
Если при создании массива конструктору передать больше одного значения, разделив их запятой, то эти значения будут восприняты как данные, которыми нужно заполнить массив
Код
myArray = new Array("JavaScript","PHP","web design");
Для создания массива можно использовать сокращенную запись, в которой все значения массива, записанные через запятую, заключаются в квадратные скобки. Например
Код
myArray = [ "JavaScript","PHP","web design" ];
Нужно помнить, что начинается нумерация элементов массива с нуля, то есть первый записанный элемент будет находиться в массиве с индексом равным нулю. Так для выше приведенного примера значение "
JavaScript" можно получить с помощью следующей записи
Узнать количество элементов в массиве, можно используя свойство массива
length:
Код
alert ("Количество элементов в массиве myArray равно "+myArray.length);
В языке JavaScript можно создать массив, элементы которого содержат различные типы данных:
Код
myArray = new Array ( 10, "web design", true, 10.5,99);
В данном примере создан массив, элементы которого содержат числовой, строковой и булевой типы данных.
Допустим на сайте есть некий текст. Пользователь его выделяет мышью и копирует в буфер обмена. Можно ли вместо того текста который выделил пользователь передать свой, заменить русские буквы а, е, с на такие же, только латинские. Цель - борьба с копипастерами. Способен ли Javascript на такие вещи или нет?
Насчет того, что подобные меры от ПРОФИ не эффективны, это понятно, но они могут отсечь большой процент школоты, которые банально вручную мышкой копипастят контент и вставляют его на разные свои ГО*НО блоги и форумы, маниакально при этом удаляя ссылку на источник.