Return
result;
то же самое, что и
return;
result;
и совсем не то же, что
Return result
В обоих случаях будет возвращено значение undefined (это значение возвращает любая функция, где нет оператора return, либо оператор return вызван без аргумента), а не result.
Чтобы многострочные операторы работали как надо - перенос строки можно указывать обратным слешем "\", вот так:
var a = "длинная \
строка "
return \
result;
Блоки
Блоки задаются фигурными скобками.
Локальные переменные объявляются при помощи var. Причем, в отличие от C/Java, сам по себе блок не задает отдельную область видимости.
var i = 0
{
var i=5
Alert(i) // 5
}
Alert(i) // тоже 5
Переменные
Переменные в javascript слабо типизированы. Это означает, что при объявлении не нужно указывать тип. Можно присвоить любой переменной любое значение. Однако при этом интерпретатор javascript (браузер) всегда знает, какого типа значение содержит данная переменная, а значит - какие операции к ней применимы. Переменную не обязательно объявлять. Достаточно ее просто присвоить:
x = 5
Далее мы разберем основные типы переменных и действия с ними.
Типы переменных
Существует 4 типа переменных:
◦ number – действительное или целое число;
◦ boolean – значение true и афдыу;
◦ string - строка;
◦ object – объекты.
Объявление переменных производится при помощи ключевого слова var. например,
var i, k;
k=2;
До инициализации переменной ее значение остается неопределенным и равным undefined.
Операция typeof возвращает тип данных, хранящихся в текущий момент в переменной.
<html>
<body>
<h1> Пример арифметического выражения</h1>
<script language="javascript">
var x=1, y=2, z;
z=x+y;
document.write('z='+z);
document.write('z.typeof()='+z. typeof());
</script>
|
</body>
</html>
Массивы
Создание
/* обычный синтаксис */
var array = [ elem0, elem1, elem2,... ]
var empty = []
/* Синтаксис с new Array() */
var array = new Array(elem0, elem1, elem2,...)
var empty = new Array()
/* Редкий синтаксис: аргумент new Array - одно число.
При этом создается массив заданной длины,
все значения в котором undefined */
var array = new Array(10)
Аргументы
elem0, elem1,...
· Если ни один из параметров elem0, elem1,... не указан, то инициализируется пустой массив.
· Если указан лишь один числовой параметр elem0 и массив объявлен черезnew Array, то будет инициализирован пустой массив длины, равной данному числу. При этом все элементы являются undefined.
· В ином случае создается массив из перечисленных элементов.
Массив пронумерованных элементов, также может служить стеком или очередью. Для ассоциативных массивов используйте Object.
Описание, примеры
Объект Array предоставляет функционал
- Массива с любыми числовыми индексами (разреженного)
- Стека/очереди
Для задания массива, как правило, используется синтаксис с квадратными скобками. Объявление через new Array тоже возможно, но почти не используется.
Пример: Создать пустой массив
var arr = []
Пример: добавить элемент в конец
arr[arr.length] = 5 /* или arr.push(5) */
Пример: Создать массив из разных элементов
var arr = [ 4, "test",, false, [0,1] ]
alert(arr[1]) // => "test"
alert(arr[2]) // => undefined
alert(arr[3]) // => false
alert(arr[4][1]) // => 1
Можно добавить объект под любым индексом, даже превосходящим текущую длину массива. При этом массив хранит (и потребляет память) только те элементы, которые установлены.
В примере ниже массив будет хранить два элемента: номер 1 и номер 999.
Пример: разреженный массив
|
var arr = [] | |
arr[1] = 5 |
arr[999] = 6 | |
alert(arr[0]) // => undefined, такого значения нет | |
alert(arr.length) // => 1000: последний индекс+1 |
Ассоциативные массивы
Класс Array рекомендуется использовать только для массивов с числовыми индексами.
Для ассоциативных массивов в javascript применяется Object.
Многомерные массивы
Для многомерных массивов в javascript нет кросс-браузерного синтаксиса.
Обычно используется массив массивов, например:
// 3 в ширину 3 в высоту | |
// каждый подмассив - колонка |
var matrix = [ [1,2,3], [4,5,6], [7,8,9] ] | |
alert(matrix[1][1]) // 5 |
Методы
Push
Shift
Join
Concat
Splice
Pop
Unshift
Slice
Reverse
Sort
Свойства
Index
Input
Length
Встроенные объекты
JavaScript поддерживает встроенные объекты: Array, Boolean, Date, Global, Function, Math, Number, String.
Экземпляр объекта создается при помощи оператора new по следующей схеме:
var object_name=new constructor_object(parameters);
где object_name – имя объекта,
constructor_object(parameters) – конструктор объекта, который имеет тоже имя, что и объект.
Объект Array
Объект Array представляет собой массив. Создается массив с помощью оператора new
var a=new Array(); //размер массива не указан
var b=new Array(3); // размер массива равен трем
var c=new Array("один","два","три");//массив задан перечислением
Пример
<html>
<body>
<script type="text/javascript">
<!--
var a= new Array();
a[0]=0; a[1]=1; a[10]=10;
for(var i=0; i<10; i++)
document.writeln("<pre>a["+i+"]="+a[i]+"</pre>");
// -->
</script>
</body>
</html>
Объект Array имеет свойство length, которое возвращает число элементов массива.
|
Методы объекта Array
Метод | Описание |
concat() | Соединяет элементы массивов. Синтаксис: array1.concat(array2), Например: var a, b, с; а = new Array(0,1,2); b = new Array(5,6,7); с = a.concat(b); // Результирующий массив с= {0,1,2,5,6,7} |
join() | Соединяет все элементы массива в строку. Параметр separator задает разделитель между элементами. Если он опущен, то разделитель не используется. Синтаксис: arrayobj.join(separator) Например: var a, b; ; a = new Array("Nice","to","see","you"); b =a.join(" "); // Результирующая строка "Nice to see you" |
reverse () | Изменяет порядок следования элементов в массиве.Синтаксис: arrayobj.reverse() Например: var a, b; а = new Array(0,1,2,3); b = a. reverse (); // Результирующий массив b = {3,2,1,0} |
slice() | Возвращает часть массива, начиная с позиции start и заканчивая позицией end. Если значение параметра endопущено, то возвращает часть массива, начиная с позиции start и до его конца. Синтаксис: arrayObj.slice{startr [end])Например, var a, b; a = new Array(0,1,2,3); b = a.slice(2).join(";");. // Результирующее значение "2;3" |
sort() | Сортирует элементы массива. Синтаксис: arrayobj.sort(sortfunction) Например, var a, b; а = new Array("a","f","d", "b", "с","m","r"); b = a.sort().join(); // Результирующее значение "abcdfmr" |
toString() | Преобразует массив в строку. objееtname.toString() |
valueOf() | Преобразует массив в строку с запятыми в качестве разделителей. object.valueOf() |
Задание.
Разместите в двумерный массив 10х10 числа от 1 до 100 и выведите их на экран.
Многомерные массивы
JavaScript позволяет работать не только с одномерными, но и многомерными массивами. Многомерный массив рассматривается как массив из одномерных массивов, поэтому его можно задать перечислением, как показано в следующем коде.
<html>
<body>
<script type="text/javascript">
<!--
var a= new Array(new Array(1,2,3),new Array(4,5,6),new Array(7,8,9));
s = 0;
for(var i=0; i<3; i++) //о циклах поговорим позднее
{
for(var j=0; j<3; j++)
{
s += a[i][j];
}
}
document.writeln("s="+s);
// -->
</script>
</body>
</html>
Массив можно также создать поэлементно, например, как в следующем коде, где конструируется таблица умножения.
var a = new Array();
for(var i=1; i<10; i++)
{
a[i] = new Array();
for(var j=1; j<10; j++)
{
a[i][j]=i*j;
}
}
Объект Boolean
Объект Boolean создается по следующей схеме:
var variablename = new Boolean(boolvalue);
где параметр boolvalue определяет начальную установку объекта. Если параметр принимает значение false, 0, null, пустую строку или вообще опущен, то принимается значение false. В противном случае — true. Основным методом является toString(), который возвращает его строковое представление.
Пример: поиск простых чисел
<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>
Объект Number
Объект Number создается по следующей схеме:
var variable_name = new Number(value)
Хотя объект Number может использоваться для хранения числовых значений, наиболее часто он применяется для доступа к константам, которые характеризуют максимальное или минимальное доступное число и т. д. Эти константы возвращаются в виде значений его свойств, перечисленных втаблице.
Таблица. Свойства объекта Number
Свойство | Описание |
MAX_VALUE | Максимальное число (1.79Е+308) |
MIN_VALUE | Минимальное число (2,22Е-308) |
NEGATIVE_INFINITY | Значение отрицательной бесконечности, возвращаемое в случае переполнения |
POSITIVE_INFINITY | Значение положительной бесконечности, возвращаемое в случае переполнения |
NaN | Специальное нечисловое значение, например, результат деления 0/0 |
Объект Math
В JavaScript большинство математических констант и функций инкапсулированы в единый статический объект Math. Математические функции являются методами этого объекта и перечислены в таблице, а константы свойствами, которые собраны в таблице.
Таблица: функции объекта Math
Методы | Описание |
abs() | Возвращает абсолютное значение |
acos | Возвращает арккосинус аргумента, значение которого выражено в радианах |
asin() | Возвращает арксинус аргумента, значение которого выражено в радианах |
atan() | Возвращает арктангенс аргумента, значение которого выражено в радианах |
atan2 () | Возвращает угол в радианах от х-оси до точки (у, х) atan2 (у, х) |
ceil() | Возвращает наименьшее целое число, большее или равное данному |
cos() | Возвращает косинус аргумента |
exp() | Возвращает экспоненту аргумента |
floor() | Возвращает наибольшее целое число, меньшее или равное данному |
log() | Возвращает натуральный логарифм числа |
max() | Возвращает максимальное из двух чисел |
min() | Возвращает минимальное из двух чисел |
pow() | Возвращает результат возведения числа base в степень exponent. pow (base, exponent) |
random() | Возвращает псевдослучайное число из диапазона от 0 до 1 |
round() | Возвращает значение, округленное до ближайшего целого |
sin() | Возвращает синус аргумента |
sqrt() | Возвращает корень квадратный аргумента |
tan() | Возвращает тангенс аргумента |
Таблица: свойства объекта Math
Свойство | Описание |
E | Основание натурального логарифма |
LN2 | Натуральный логарифм 2 |
LN10 | Натуральный логарифм 10 |
LOG2E | Логарифм по основанию 2 от е |
LOG10E | Десятичный логарифм от е |
PI | Число π |
SQRT_2 | Квадратный корень 0,5 |
SQRT2 | Квадратный корень 2 |
Задача. Найти корни уравнения x2+2x+1=0
<script language="javascript">
var a=1, b=2,c=1;
var d=b*b-4*a*c;
if(d>=0){
document.writeln("x1="+(-b+Math.sqrt(d))/(2*a)+"<BR>");
document.writeln("x1="+(-b-Math.sqrt(d))/(2*a));
}
</script>
Объект String
Объект типа String создается по следующей схеме:
var variable_name = new String(value)
Объект типа String обладает одной интересной особенностью, а именно доступ к нему может производится из других фреймов. Например, если требуется получить доступ к переменной strParent из родительского окна, это можно сделать следующим образом
var str = new String();
str = parent.strParent;
Основным свойством объекта String является свойство length, возвращающее длину строки. В таблице перечислены методы объекта String.
Таблица Методы объекта String
Методы | Описание |
anchor() | Создает экземпляр тега <A> со значением атрибута name, равным строке, передаваемой методу. Например: var str = "This is an anchor"; str = str.anchor("test"); // Возвращает // <A NAME="test"> This is an anchor</A> |
big() | Размещает парные теги <BIG>вокруг текста из строкового объекта. Например: var str = "This is a big tag".big(); // Возвращает // <BIG> This is a big tag</BIG> |
blink() | Размещает парные теги <blink> вокруг текста из строкового объекта.Например: var str = "This is a blinking line"; str = str.blink(); var str = "This is a bold text"; str = str.boldO; // Возвращает // <B> This is a bold text</B> |
charAt() | Возвращает символ строки, расположенный по указанному индексу. Нумерация индексов начинается с нуля. Например, function TestcharAt(n, str) { var s = str.charAt(n-1); return(s); } var r = TestcharAt (3, "abcdefghijklm); // Возвращает "с" |
charCodeAt() | Возвращает код символа строки, расположенный по указанному индексу. Если нет значений, соответствующих индексу, то возвращается значение NaN. Например:function TestcharCodeAt(n, str) { var s = str.charCodeAt(n-l); return(s); } var r = TestcharCodeAt(3, "abcdefghijklm"); // Возвращает 99 |
concat() | Объединяет две строки в одну. Например: var str1 = "ABC"; var str2 = "XYZ"; var s = str1.concat(str2); // Возвращает "ABCXYZ" |
fixed() | Размещает парные теги <TT>вокруг текста из строкового объекта устанавливающие шрифт фиксированной ширины Например, var str = "This is a just a text".big(); // Возвращает // <TT>This is a just a text</TT> |
fontcolor() | Размещает парные теги <FONT> вокруг текста из строковое объекта со значением атрибута color, равным значении параметра этого метода. Например: var str = "This is a red text"; str = str.fontcolor("red"); // Возвращает // <FONT color=red> This is a red text</FONT> |
fontsize() | Размещает парные <font> теги вокруг текста изстроковогообъекта со значением атрибута size, равным значению параметра этого метода. Например: var str = "This is a sized text"; str = str.fontsize(2); // Возвращает // <FONT size=2> This is a bold text</FONT> |
fromCharCode() | Создает строку на основе передаваемых кодов символов. Например: var test = String.fromCharCode(65,108,105,99,101); // Возвращает "Alice" |
indexOf() | Возвращает позицию первого вхождения строки substringвэкземпляр объекта String, начиная с позиции startindex. Если параметр startindexотсутствует, то поиск производится с начала строки. indexOf (substringl, startindex) Например: function Test(str) { var pattern = "BABEBIBOBUBABEBIBOBU"; var s = pattern.indexOf(str); return(s); } var n = Test("BIBO"); // Возвращает 4 Следующий код демонстрирует, как метод indexOf() позволяет определить число вхождений буквы (в данном случае "о") в предложение. var pos = 0, num = -1, i = -1; var sentence = "An ounce of discretion" + "is worth a pound of wit"; while (pos!= -1) { pos = sentence.indexOf("o", i+1); num += 1; i = pos; } // Возвращает значение num, равное 6 |
italics() | Размещает парные теги <i> вокруг текста из строкового объекта. Например: var str = "This is an italic text"; str = str.italics(); / // Возвращает // <I> This is an italic text </!> |
stIndexOf() | Возвращает позицию первого вхождения строки substringв экземпляр объекта String, начиная с позиции startindex, причем поиск осуществляется справа налево. Если параметр startindex отсутствует, то поиск производится с начала строки. LastlndexOf(substring!, startindex) |
link() | Создает экземпляр тега <А> со значением атрибута href, равным строке, передаваемой методу. Например, var str = "This is a hyperlink"; str = str.link("https://www.bhv.ru"); // Возвращает // <A href="https://www.bhv.ru"> // This is a hyperlink</A> |
math() | Возвращает массив, основанный на выражении, переданном в качестве значения параметра метода |
replace() | Выполняет операцию поиска регулярного выражения rgExpи замену его на подстроку replace Text. replace(rgExp, replaceText) Например: var sentence = "A streak of good luck"; sentence = sentence.replace("good", "bad"); // Возвращает "A streak of bad luck" |
search() | Возвращает позицию совпадения с заданной строкой в экземпляре объекта String. Если строка не найдена, то возвращаете значение -1. |
slice() | Возвращает часть строки между позициями, заданными параметрами startи end. Если параметр endопущен, то строка рассматривается от позиции startи до конца. slice (start [, end ]) Например, var sentence = "On all fours"; sentence = sentence.slice(6,sentence.length); // Возвращает "fours" |
small() | Размещает парные теги <small> вокруг текста из строкового объекта. Например, var str = "This is a SMALL tag".small(); // Возвращает // <SMALL> This is a SMALL tag</SMALL > |
split() | Разбивает строку в массив сегментов. В качестве разделителя между сегментами используется значение параметра метода, Например, следующий код разбивает предложение на слова каждое их них выводит в отдельную строку документа. var sentence = "A streak of good luck"; var t = new Array(); t = sentence.split(" "); for(var i=0;i<t.length; i++) document.writeln(t[i]); document.writeln("<br>"); } document.close (); |
strike() | Размещает парные теги <STRIKE> вокруг текста из строкового объекта |
sub() | Размещает парные теги <SUB>вокруг текста из строкового объекта |
substr() | Возвращает подстроку длиной length, начиная с позиции start. substr(start [, length]) |
substring() | Возвращает подстроку, ограниченную позициями start и end. substring(start, end) |
sup() | Размещает парные теги <sup>вокруг текста из строкового объекта |
toLowerCase() | Преобразует символы исходной строки в нижний регистр |
toUpperCase() | Преобразует символы исходной строки в верхний регистр |
Основы работы со строками
Рассмотрим основы работы со строками в JavaScript.
Использование кавычек
Когда происходит объявление строки в JavaScript, они должны быть заключены в одинарные или двойные кавычки. На самом деле это разные символы. Нельзя смешивать разные виды кавычек в коде, Если Вы начали строку с одинарной кавычки, а закончили двойной, JavaScript не поймет, что Вы имели в виду.
Давайте представим две строки,
var a = 'Hello world!';
var b = 'I am a student. ';
Сейчас мы объявили две переменные, «a» и «b», и присвоили им строковые значения. После этого мы можем с ними работать, но сначала решим одну проблему: допустим,
var b = 'I'am a student.';
Строка содержит в себе лишнюю одинарную кавычку, и JavaScript думает, что строка закончена и выводит сообщение об ошибке, не понимая, что следует дальше. Поэтому нужно экранировать кавычку, сообщая браузеру, что её нужно рассматривать как символ, а не как окончание строки. Это осуществляется с помощью «обратного слеша» перед кавычкой:
var b = 'I\'am a student.';
Заметьте, что Вы можете вставлять в строку двойные кавычки без их экранирования. Так как Вы используете одинарные кавычки, как начало и конец строки,
var b = 'I\'am a "student".';
воспринимается без проблем. Двойные кавычки автоматически рассматриваются, как части строки, а не команды.
Встроенные функции
После определения строк можно начать их использование. Например, Вы можете соединить одну строку с другой, или взять из строки «b» подстроку, состоящую из второго - четвертого символов и вставить их в середину строки «a», или определить какой символ стоит двенадцатым в «a», сколько символов в «b», есть ли в них буква «q» и т. д.
Для этого Вы можете использовать встроенные функции, которые JavaScript предопределяет для каждой строки. Одна из них — «length» — возвращает длину строки. То есть если Вы хотите вычислить длину «Hello world!», напишите:
var c = 'Hello world!'.length;
Ниже представлен список распространенных встроенных методов и свойств.
Строки и числа
В некоторых языках программирования требуется указывать, является ли переменная числом или строкой, перед тем, как делать с ней что-либо ещё. JavaScript проще относится к разнице между строками и числами. Фактически даже можно складывать числа со строками:
var a = 'Hello world!';
var c = a + 12
В некоторых языках программирования обработка такой строки приведет к ошибке. Всё же «a» — это строка, а «12» — число. Однако JavaScript пытается решить проблему, предполагая, что «12» — тоже строка. Таким образом «с» принимает значение «Hello world!12». Таким образом, когда используется «+» со строкой и числом, тогда JavaScript пытается сделать из числа строку. Если к строке применяются математические операции, JavaScript пробует превратить её в число. При отсутствии возможности перевода строки в число (например, из-за наличия в ней букв), JavaScript возвращаетNaN — «Not a Number — не является числом».
Наконец, в JavaScript нет разницы между целыми величинами и числами с плавающей точкой.
Преобразование «Число → строка»
Для преобразования числа в строку введите:
var c = (16 * 24) / 49 + 12;
d = c.toString();
После этого Вы можете применять к «d» все строковые методы, а «c» все ещё содержит число.
Преобразование «Строка → число»
Если Вы хотите преобразовать строку в число, сначала убедитесь, что она состоит только из символов 0—9. Для этого нужно просто умножаю строку на 1.
var c = '1234';d = c * 1;Так как умножение производится только с числами, JavaScript превращает строку в число, если это возможно. В противном случае, результат — NaN.
Заметим, если написать:
var c = '1234';d = c + 0;Результатом будет «12340», потому что JavaScript использует «+» для соединения строк, а не их сложения.
Задача. Каким будет результат от выполнения кода?
<html>
<head>
<title>Пример 2</title>
</head>
<body>
<script type="text/javascript">
<!--
var х = " 5 ";
var y = х + " 3 ";
alert(y);
// -->
</script>
</body>
</html>
Объект Date
Позволяет работать с датами и временем. При этом надо помнить, что в JavaScript отсчет времени идет от 1 января 1970 года, и JavaScript отслеживает время в миллисекундах от этой начальной даты.
Объект Date может быть создан одним из следующих способов:
var newDateObj = new Date();
var newDateObj = new Date (dateVal);
var newDateObj = new Date(year, month, date[, hours[, minutes [, secondsl, ms]]]])
В таблицеперечислены параметры, необходимые для создания даты.
Таблица. Параметры конструкторов объекта Date
Параметр | Описание |
dateVal | Число миллисекунд, прошедших между специфицированной датой и полуночью 1 января 1970 года |
year | Полный год. Например, 2001 (но не 01). Обязательный параметр |
manth | Целое число от 0 (январь) до 11 (декабрь), являющееся номером месяца. Обязательный параметр |
date | Целое число 1 до 31, являющееся днем. Обязательный параметр |
hours | Целое число от 0 до 23, специфицирующее час. Необязательный параметр |
minutes | Целое число от 0 до 59, специфицирующее минуту. Необязательный параметр |
seconds | Целое число от 0 до 59, специфицирующее секунду. Необязательный параметр |
ms | Целое число от 0 до 999, специфицирующее миллисекунду. Необязательный параметр |
getDate() | Возвращает день месяца (от 1 до 31) |
getDay() | Возвращает день недели (от 0 для воскресенья до 6 д/ субботы). Например, следующий код переводит номер дн недели в его название. var d, day, names, s = "Today is: "; var names = new Array("Sunday", "Monday", "Tuesday"; var names = names.concat("Wednesday","Thursday", "Friday", "Saturday"); d = new Date (.); day = d.getDayO; s += names [day] // Возвращает день недели |
getFullYear() | Возвращает полный год |
getHours() | Возвращает час суток (от 0 до 23) |
getMilliseconds() | Возвращает миллисекунды (от 0 до 999) |
getMinutes() | Возвращает минуты (от 0 до 59) |
getMonth() | Возвращает месяц (от 0 для января до 11 для декабря). ] Например, следующий код возвращает текущую дату. var d, s =; "Today's date is: "; d = new Date(); s += (d. getMonth () + 1) + "/"; s += d. getDate () + "/"; s += d.getFullYear(); // Возвращает текущую дату |
getSeconds() | Возвращает секунды (от 0 до 59). Например, следующий код возвращает текущее время. var d, s = "The current local time is: "; var с = ":"; d = new Date (); s += d.getHours()+ c; s +- d.getMinutes() + c; s += d.getSeconds() + c; s += d.getMilliseconds(); |
getTime() | Возвращает количество миллисекунд, прошедших с 1.1.1970 00:00:00 |
getTimezoneOffset() | Возвращает смещение часового пояса в минутах по отношению к GMT/UTC. UTC (СГВ) Универсальное координированное время, базирующееся на атомном отсчёте времени. UTC - это наследие времени по Гринвичу (GMT, солнечное время на 0-вом меридиане), иногда ошибочно именуемое GMT. Время по UTC не переводится зимой и летом. |
getUTCDate() | Возвращает день месяца (от 1 до 31) в соответствии с UTC (Universal Coordinated Time, универсальное время) |
getUTCDay () | Возвращает день недели (от 0 для воскресенья до 6 для субботы) в соответствии с UTC Возвращает полный год в соответствии с UTC |
getUTCFullYear() | Возвращает полный год в соответствии с UTC |
getUTCMilliseconds() | Возвращает миллисекунды (от 0 до 999) в соответствии с UTC |
getUTCMinutes () | Возвращает минуты (от 0 до 59) в соответствии с UTC |
getUTCMonth() | Возвращает месяц (от 0 для января до 11 для декабря) в соответствии с UTC |
getUTCSeconds () | Возвращает секунды (от 0 до 59) в соответствии с UTC |
setDate () | Устанавливает день месяца (от 1 до 31) |
setFullYear() | Устанавливает год. Параметр numYear, задающий год,— обязательный. Параметры numMonthи numDate, задающие месяц и день, — необязательные. setFullYear(numYear[, numMonthl, numDate}}) |
setHours() | Устанавливает час (от 0 до 23). Параметр numHours, задающий час, - обязательный. Параметры nuwMin, numSecи numMilli, задающие минуты, секунды и миллисекунды, - необязательные. setHours(numHours[, numMin{, numSec [, numMilli]]]) |
setMilliseconds() | Устанавливает миллисекунды (от 0 до 999) |
setMinutes () | Устанавливает минуты (от 0 до 59). Параметр numMinutes, задающий минуты,— обязательный. Параметры numSecиnumMilli, задающие секунды и миллисекунды, - необязательные. setMinutes(numMinutes[, numSeconds[, numMilli}}) |
setMonth() | Устанавливает месяц (от 0 до 11) |
setSeconds() | Устанавливает секунду (от 0 до 59). Параметр numSeconds, задающий секунду, - обязательный, а параметр numMilli, задающий миллисекунду, - необязательные. setSeconds(numSeconds[, numMilli]) |
setTime() | Устанавливает количество миллисекунд, прошедших с полночи 1 января 1970 года |
setUTCDate () | Устанавливает день месяца в соответствии с UTC |
setUTCFullYear () | Устанавливает год в соответствии с UTC |
setUTCHours () | Устанавливает час в соответствии с UTC |
setUTCMilliseconds() | Устанавливает миллисекунды в соответствии с UTC |
setUTCMinutes () | Устанавливает минуты в соответствии с UTC |
setUTCMonth() | Устанавливает месяц в соответствии с UTC |
setUTCSeconds() | Устанавливает секунды в соответствии с UTC |
toGMTStringO | Преобразует дату в строку в соответствии с форматом |
toLocaleString() | Преобразует дату в строку в соответствии с локальнь форматом |
toUTCString() | Преобразует дату в строку в соответствии с UTC форматом |
valueOf() | Возвращает эквивалент объекта Date в миллисекундах |
,
Внимание
Иногда требуется обеспечить указанную задержку между выполняемыми действиями без привлечения таймера. Это можно обеспечить следующей функцией:
function pause(millisecond)
var now = new Date();
var startTime = now.getTime();
While (true)
{
var currentTime = new Date();
if (currentTime.getTime() — startTime > millisecond) break;
}
}
Объект Global
В объекте Global соединены высокоуровневые свойства и методы, используемые при программировании на JavaScript. В табл. приведены некоторые из его методов.
Метод | Описание |
escape() | Перекодирует строковый объект так, чтобы он мог читаться на любом компьютере. Все знаки пунктуации, пробелы имеют кодировку %хх. Например, escape("Hi, Alice!")возвращает строку "Hi%2C%20Alice%21" |
Выполняет код JavaScript. Например, в следующем операторе переменной t присваивается значение 4. var t = eval("1+3"); | |
isFinite() | Возвращает true, если аргумент принимает любое значение, отличное от NaN, положительной или отрицательной бесконечности. В последних трех случаях метод возвращает значение false |
isNaN() | Возвращает true, если аргумент принимает значение NaN.Как правило, этот метод используется для проверки корректности значений, возвращаемых методами parseint()иparseFloat() |
parseFloat() | Выполняет преобразование строкового выражение в число с плавающей десятичной точкой. Например, parseFloat("abc") возвращаетNaN; parseFloat("1.2abc") возвращает 1.2; parseFloat("1.2") возвращает 1.2 |
parseInt() | Выполняет преобразование строкового выражение в целое число. Например, parseint ("abc") возвращает NaN; parseint("1.2") возвращает 1 |
unescape() | Декодирует строку, закодированную методом escape() |
Имена
Требования к именам такие же, как в С++. Напомним, что имя это непрерывная последовательность букв английского алфавита, знака подчеркивания и цифр. Имя начинается с буквы или знака подчеркивания. Имя не должно совпадать с ключевыми словами. Имя не должно содержать специальных символов.
Язык JavaScript чувствителен к регистру, поэтомуmyvar, MyVar и myVar — разные переменные. Существует заблуждение, что именно так и надо писать слова в тэгах HTML. Но на самом деле HTML к регистру нечувствителен.
Операторы и операции
Операторы Javascript
Операторы служат для управления потоком команд в JavaScript. Один объект может быть разбит на несколько строк, или, наоборот в одной строке может быть несколько операторов.
Необходимо знать следующее, во-первых, блоки операторов, такие как определения функций, должны быть заключены в фигурные скобки. Во-вторых, точка с запятой служит разделителем отдельных операторов. Если пропустить точку с запятой, поведение программы станет непредсказуемым.
Так как JavaScript не имеет жестких требований к форматированию текста программы, можно вставлять символы перевода строки и отступа для лучшей читабельности текста.
Ниже описаны операторы, которые используются в JavaScript:
- break
- comment
- continue
- do…while
- for
- for...in
- function
- if...else
- return
- var
- while
- with
Оператор 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