Руководство по JavaScript

         

Оператор if...else



Оператор if...else

Оператор if...else - это условный оператор, который выполняет первый набор утверждений, если значение condition истинно. В противном случае выполняет второй набор утверждений, заключенные в операторе else, если условие ложно. Если набор утверждений (statments), заключенные в фигурные скобки {} содержит один оператор, то скобки можно опустить. Условные операторы могут быть вложены друг в друга без ограничений. if (condition) { ...statements... }[else { else ...statements... }]



Оператор var



Оператор var

Оператор var объявляет переменную varname и дополнительно может присваевать ей значение. Имя переменной varname может быть любой идентификатор, и значение может быть любое выражение. Область действия переменных, является текущая функция или, если переменные, объявленные вне функции, то весь текущий документ.

Использование var вне функции необязательно; вы можете описать переменную, просто приписывая ей это значение. Однако, использование var необходимо в функциях, так как может быть глобальная переменная токого же имени. var VariableName [= value] [..., VariableName [= value] ]



Оператор while



Оператор while

Оператор while - это оператор цикла, который повторяет цикл, пока значение condition есть истинно (true). Как только значение condition становится ложным (false), то управление переходит к первому оператору после фигурной скобки, закрывающей тело цикла while: while (condition) { ...statment... }



Оператор width



Оператор width

Оператор width устанавливает объект по умолчанию для набора операторов. Любые ссылки на свойства без явного указания объекта предполагают объект по умолчанию. Заметьте, что круглые скобки требуются вокруг объекта. with (object) { ...statment... }



Операторы



Операторы

JavaScript имеет арифметические, строковые и логические операторы. Имеет, и бинарные и унарные операторы. Бинарный оператор требует двух операндов, унарный перед оператором и одним после оператора:

Operand1 operator operand2

Например, 3 + 4 or x * y

Унарный оператор требует одного операнда, до или после оператора:

operator operand

Или

operand operator

Например x ++ или ++ x.



Операторы


Операторы служат для управления потоком команд в JavaScript. Один объект может быть разбит на несколько строк,или, наоборот в одной строке может бытьнесколько операторов.

Необходимо знать следующее, во-первых,блоки операторов, такие как определения функций, должны быть заключены в фигурные скобки. Во-вторых, точка с запятой служит разделителем отдельных операторов. Если пропустить точку с запятой, поведение программы станет непредсказуемым.

Так как JavaScript не имеет жестких требований к форматированию текста программы, можно вставлять символы перевода строки и отступа для лутшей читабельности текста.

Ниже описаны операторы, которые используются в JavaScript:

break comment continue for for...in function if...else return var while with



Операторы Присваивания (=, + =, - =, * =, / =)



Операторы Присваивания (=, + =, - =, * =, / =)

Оператор присваивает значение левому операнду, основанному на значении правого операнда. Основной оператор присваивания равенство (=), который присваивает значение правого операнда левому операнду. То есть x = y приписывает значение y к x.

Другие операторы - стенография для стандартных арифметических действий выглядят следующим образом: Сложение, конкатенация:X + = y означает x = x + y Вычитание:x - = y означает x = x - y Умножение:X * = y означает x = x * y Деление:X / = y означает x = x / y Вычисление остатка от деления: X % = y означает x = x % y

Имеются дополнительные операторы присваивания для побитовых операторов Побитовый сдвиг влево: X <<=y означает x=x<<y Побитовый сдвиг вправо: x>>=y означает x=x>>y Побитовый сдвиг вправо с заполнением нулями x>>>=y означает x=x>>>y Побитовое И x&=y Означает x = x и y Исключающее побитое ИЛИ x^=y означает x = x ^ y Побитовый ИЛИ x|=y означает x = x | y



Операторы Сравнения (==, >, >, =<, <=,!=)



Операторы Сравнения (==, >, >, =<, <=,!=)

Оператор сравнения сравнивает его операнды и возвращает логическое значение, основанное на том, является ли сравнение true или false. Операнды могут быть численными или строковыми значениями. Когда используется на строковых значениях, то сравнения основывается на стандартном лексикографическом порядке.

Операторы: Равно (==): возвращает true, если операнды равны. Не равно (!=): возвращает true, если операнды не равны. Больше чем (>): возвращает true, если левый операнд больше чем правый операнд. Пример: x>y возвращает true, если x больше чем y. Больше или равно чем (>=): возвращает true, если левый операнд больше чем или равен правому операнду. Пример: x>=y возвращает true, если x больше или равен чем y. Меньше чем (<): возвращает true, если левый операнд - меньше чем правый операнд. Пример: x<y возвращает true, если x - меньше чем y. Меньше или равно чем (< =): возвращает true, если левый операнд - меньше или равен правому операнду. Пример: x<= y возвращает true, если x - меньше или равен y.



Операторы Строки



Операторы Строки

В дополнение к операторам сравнения, которые могут использоваться на значениях строк, оператор конкатенации (+), суммирует две строки вместе, возвращая другую строку, которая является соединением двух строк операнда. Например,

"my " + "string"

Возвращает строку

"my string"

Оператор происвоения += может также использоваться, чтобы конкатенировать строки. Например, если переменнай mystring - строка, которая имеет значение "alpha", затем выражение Mystring + = "bet"Вычисляет как "alphabet" и приписывает это значение mystring.



Определение Функций



Определение Функций

Хорошо определять все ваши функции в HEAD вашей HTML страницы. Потому, что все функции будут определены прежде, чем любое содержание показано. Иначе, пользователь может выполнять какое - нибудь действие, в то время как страница все еще загружается, которое вызывает обработчик событий и вызывает неопределенную функцию, ведя к ошибке.



Определение Методов



Определение Методов

Метод - функция, связанная с объектом. Вы определяете метод таким же образом, так как вы определяете стандартную функцию. Затем, используйте следующий синтаксис, чтобы связать функцию с существующим бъектом: object.methodname = function_name Где object - существующий объект, methodname - имя, которое вы присваиваете методу, и function_name - имя функции.

Вы можете вызывать метод в контексте объекта следующим образом: object.methodname (params);



Определение Методов



Определение Методов

Вы можете определять методы для типа объекта включением определение метода на определении типа объекта. Например, пусть у вас есть набор файлов изображений GIF, и вы хотите определить метод, который показывает информацию для car, наряду с соответствующим изображением. Вы можете определить функцию типа: function displayCar() { var result = "A Beautiful " + this.year + " " + this.make + " " + this.model; pretty_print(result) } Где pretty_print - предопределенная функция, которая показывает строку. Используйте this, чтобы обратиться к объекту, который принадлежит методу.

Вы можете делать функцию методом из car, прибавляя утверждение This.displayCar = displayCar;к определению объекта. Так, полное определение car теперь выглядит так: function car(make, model, year, owner) { this.make = make; this.model = model; this.year = year; this.owner = owner; this.displayCar = displayCar; }

Вы можете вызывать этот новый метод следующим образом: car1.displayCar () car2.displayCar () Это будет выглядеть подобно следующему выводу:

A Beautiful 1993 Eagle Talon TSi

A Beautiful 1992 Nissan 300ZX



Орератор return



Орератор return

Орератор return указывает значение, которое будет возвращено функцией. return expression;



Открытие и закрытие окон



Открытие и закрытие окон

Открытие окон
Закрытие окон

Открытие новых окон в браузере - грандиозная возможность языка JavaScript. Вы можете либо загружать в новое окно новые документы (например, те же документы HTML), либо (динамически) создавать новые материалы.

Открытие окон



Открытие окон

Вы можете создавать окно с помощью метода Window. Следующее утверждение создает окно "msgWindow", которое показывает содержание файл sesame.html:
MsgWindow=window.open("sesame.html")
Следующее утверждение создает окно "homeWindow", которое показывает домашнюю страницу Netscape:
homeWindow=window.open("http://www.netscape.com")
Окна могут иметь два названия. Следующее утверждение создает окно с двумя названиями. Название окна "msgWindow" - это вовсе не имя окна, но только с помощью этой переменной вы можете получить доступ к окну. И поскольку это обычная переменная, то область ее действия - лишь тот скрипт, в котором она определена; а между тем, имя окна, "displayWindow" - уникальный идентификатор, которым можно пользоваться с любого из окон браузера.
msgWindow=window.open("sesame.html","displayWindow")
Когда Вы создаете окно, имя окна не требуется. Но если Вы хотите обратиться к окну из другого окна, то окно должно иметь свое уникальное имя (в данном случае "displayWindow"). Приведенный далее скрипт открывает новое окно браузера и загружает в него страничку sesame.html с помощью метода open():

<html> <head> <script language="JavaScript"> <!-- hide function openWin() { msgWindow= open("sesame.html") } // --> </script> </head> <body> <form> <input type="button" value="Открыть новое окно" onClick="openWin()"> </form> </body> </html>

Заметим, что Вы имеете возможность управлять самим процессом создания окна. Например, Вы можете указать, должно ли новое окно иметь строку статуса, панель инструментов, меню или полосы прокрутки. Кроме того, Вы можете задать размер окна. Рассмотрим следующий пример создания окна размерами 250x100 пикселов, которое не имеет ни строки статуса, ни панель инструментов, ни меню, ни полосы прокрутки.

<html> <head> <script language="JavaScript"> <!-- hide function openWin() { msgWindow= open("sesame.html",displayWindow", "width=250,height=100,status=no, toolbar=no,menubar=no,scrollbars=no") } // --> </script> </head> <body> <form> <input type="button" value="Открыть новое окно" onClick="openWin()"> </form> </body> </html>

Как видно в примере, свойства окна записаны в строке "width=250,height=100,status=no,toolbar=no,menubar=no,scrollbars=no", в которой следует обратить внимание на то, что вам не следует помещать в ней символы пробела.



Печать



Печать

Вы не можете в настоящее время напечатать вывод, созданный с JavaScript. Например, если у вас есть следующее в странице:

This is some text. document.write("

And some generated text") И вы напечатали его, вы получите только "This is some text", даже если вы видели бы обе экранные линии.

Переменные



Переменные

Вы используете переменные, чтобы хранить значения в вашем приложении. Вы даете этим переменным имена, по которым вы ссылаетесь на них, и существуют некоторые правила, которым имена должны соответствовать.

Идентификатор JavaScript или имя должны начаться с символа или символом подчеркивания ("_"); последовательность символов также могут быть цифры (0-9). Символы включают знаки с "A" до "Z" (верхнего регистра) и знаки с "a" до "z" (нижний регистр). JavaScript учитывает регистр.

Некоторые примеры допустимых имен: Number_hits temp99 _name



Побитовые Операторы



Побитовые Операторы

Побитовые операторы воздействуют на операнды как набор битов (0 и 1). Например, десятичное число 9 имеет двоичное представление 1001. Побитовые операторы выполняют действия на таких двоичных представлениях, но они возвращают стандартное JavaScript численное значение.

Побитовые Логические операторы

Побитовые логические операторы работают следующим образом: Операнды преобразованы в 32-битные целые числа, и выражения строк битов (0 и 1). Каждый бит в первом операнде соединен с соответствующим битом во втором операнде: первый бит к первому биту, второй бит ко второму биту, и так далее. Оператор применяется к каждой паре битов, и результат создан побитовым.

Побитовые операторы: Побитовый И & возвращает 1, если оба операнда 1. Побитовый ИЛИ | возвращает 1, если любой операнд 1. Исключающее побитовое ИЛИ ^ возвращает 1, если есть 1 но не оба операнда 1.

Например, бинарное представление 9 - 1001, и бинарное представление 15 - 1111. Так, когда побитовые операторы применяются к этим значениям, то результаты выглядят следующим образом: 15 & 9 возвращает 9 (1111 & 1001 = 1001) 15 | 9 возвращает 15 (1111 | 1001 = 1111) 15 ^ 9 возвращает 6 (1111 ^ 1001 = 0110)

Побитовые Операторы сдвига

Побитовые операторы сдвига: Сдвит влево (<<) Сдвиг вправо (>>) Сдвиг вправо с заполнением нулями (>>>)

Операторы сдвига присваивает два операнда: первый - количество на которое будет сдвинуто, и второй определяет число битовых положений, которыми первый операнд должен быть сдвинут. Направление действия сдвига управляется использующим оператором.

Операторы сдвига преобразуют операнды к 32-битное целое число, и возвращают результат того же самого типа что и левый оператор.

Сдвит влево (<<)

Сдвиг влево перемещает все биты влево на количество позиций, указанных в правой части выражения, заполняя освободившиеся позиции нулямию

Например, 9<<2 возвращает 36, потому что 1001 сдвигается на 2 бита влево и становится равным 100100, что равно в дисятеричной системе 36.

Сдвиг вправо (>>)

Cдвиг вправо заполняет освободившиеся слева позиции значением самого левого бита исходного значения.

Например, 9 >> 2 возвращает 2, потому что 1001 сдвигается на два бита вправо и становится 10, что равно в дисятеричной системе 2. Аналогично, -9 >> 2 возвращает -3, потому что знак сохраняется.

Сдвиг вправо с заполнением нулями (>>>)

Сдвиг вправо с заполнением нулями работает аналогично сдвигу влево, только в противоположном направлении.

Например, 19>>>2 возвращает 4, потому что 10011 сдвигается на два бита вправо и становятся 100, что равно в дисятеричной системе 4. Для postive чисел, ноль - заполняет правый сдвиг, и распространяющийся знак сдвигается вправо выдает тот же самый результат.



Преобразование типов данных



Преобразование типов данных

Тип переменной зависит от того, какой тип информации в ней хранится. JavaScript не является жестко типизированным языком. Это означает, что вы не должны точно определять тип данных переменной, в момент ее создания. Тип переменной присваивается переменной автоматически в течение выполнения скрипта. Так, например, вы можете определить переменную следующим образом: var answer = 42

А позже, вы можете присвоить той же переменной, например следующее значение: answer = "Thanks for all the fish..." Или рассмотрим следующее выражения: //пример var oneString="1" var oneInt=1 var oneConcatenate=oneString+oneInt // В результате получается "11" var oneAddition=oneInt+oneString // В результате получается 2

В первой операции сложения первый операнд является строкой. JavaScript предпологает, что производится операция с двумя строками. Когда JavaScript обнаруживает в качестве второго операнда целое число, он в соответствии со своими представлениями преобразует переменную в строку.

Поскольку JavaScript свободно типизированный язык, то это не вызовет ошибки.

Так как JavaScript не поддерживает никаких методов и свойств для определения типа текущего значения переменной, очень важно внимательноотслеживать типы переменных во избежание неожиданных результатов.

Вообще, в выражениях, включающие числовые и строковые значения, JavaScript преобразовывает числовые значения в строковые. Например, рассмотрим следующие утверждение: x = "The answer is " + 42 y = 42 + " is the answer."

Первое утверждение будет строка "The answer is - 42 ". Второе утверждение возвращает строку " 42 - The answer is".

JavaScript предоставляет несколько специальных функций для управления строковыми и числовыми значениями: eval вычисляет строку, представляющая любые JavaScript литералы или переменные, преобразовывая ее в число. parseInt преобразовывает строку в целое число в указанном основании системы счисления, если возможно. parseFloat преобразовывает строку в число с плавающей точкой, если возможно.



Применение оператора



Применение оператора

Следующий пример добавляет элемент к форме в предположении,что все элементы содержат числовые значения. Если встречается значение "0", цикл прекращается. function CheckValues(form){ var total for (I=0; I



Пример Фреймов



Пример Фреймов

Если frameset в предыдущем примере разработан, чтобы представить доступные названия для music club, фреймы и их файлы HTML могут иметь следующее содержание: category.html, в фрейме listFrame, содержит список музыкантов, сортируемых классом. titles.html, в фрейме contentFrame, содержит алфавитный список каждого музыканта и названий, доступных для того музыканта. navigate.html, в фрейме navigateFrame, содержит гиперссылки, которые позволяют пользователю, выбирать, как музыканты показаны в listFrame: в алфавитном списке или категорическом списке. Этот файл также определяет гиперссылки, которые позволяют пользователю, выделить описание каждого музыканта. Дополнительный файл, alphabet.html, содержит список музыкантов, сортируемые в алфавитном порядке. Этот файл показана в listFrame, когда пользователь нажимает связь для алфавитного списка.

Файл category.html (категорический список) содержит следующий код: Music Club Artists

Jazz Toshiko Akiyoshi John Coltrane Miles Davis Dexter Gordon

Soul Betty Carter Ray Charles ... The file alphabet.html (the alphabetical list) contains code similar to the following: Music Club Artists Toshiko Akiyoshi The Beatles Betty Carter Ray Charles ...

Файл navigate.html (навигационные связи внизу экрана) содержит следующий код: Alphabetical By category Musician Descriptions

Файл titles.html (главный файл, показанный в фрейме справа) содержит следующий код:



Начало комментария,



Примеры

/* Начало комментария, а здесь заканчивается.*/ ...строки кода... // Однострочный комментарий


Следующий пример демострирует цикл while,



Примеры

Следующий пример демострирует цикл while, содержащий оператор continue, который выполняется, когда переменная i равна 3. i = 0 n = 0 while (iРассмотрим другой пример, который добавляет элемент к форме в предположении, что все элементы содержат числовые значения. Если встречается отрицательное значение, оно не включается в итоговую сумму. function CheckValues(form){ var total for (I=0; I


продолжающийся до тех пор пока



Примеры

Оператор 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;) { ...строки кода... }


in является полезным средством для



Примеры

Цикл for... in является полезным средством для отладки благодаря своей способности вывести на экран все свойства объекта в одном цикле. fanction objectDisplay(obj) { var displayLine; for (var prop in obj) { displayLine =obj.name+"."+prop+"="+obj[prop]; document.write(displayLine+"
") } document.write("End of object"+obj.name) }


Эта функция возвращает общую долларовую



Примеры

Эта функция возвращает общую долларовую сумму продажи, когда дано число единиц, продаваемых изделий a, b, и c. function calc_sales(units_a, units_b, units_c) { return units_a*79 + units_b*129 + units_c*699}


Следующая функция преобразует значение минут



Примеры

Следующая функция преобразует значение минут текущего временив двузначное число для использования в программе "Часы": fanction makeMinutes() { var minstring=""; var now = new Date(); var min = Date.getMinutes(); if (min


Следующая функция возвращает квадрат ее



Примеры

Следующая функция возвращает квадрат ее аргумента, x, где x - это число: function square( x ) { return x * x } Ниже приведенный пример соединяет три строки вместе, используя в качестве разделителя запятую: function stringAssemble(string1,string2,string3) { return string1+","+string2+","+string3 }


Приведем пример, когда переменная



Примеры

var num_hits = 0, cust_no = 0 Приведем пример, когда переменная globalString может быть использована в любой функции или скрипте текущего документа, а переменная localString видна только внутри функции bracket: var globalString function bracket(){ var localString="["+globalString+"]"; document.write(localString); }


Следующий цикл while повторяется, пока



Примеры

Следующий цикл while повторяется, пока переменная n меньше чем три. Каждая итерация увеличивает n и прибавляет его к x. Следовательно, x и n пренимают следующие значения: После первой итерации: x = 1 , n = 1 После второго итерации: x = 2 , n = 3 После третьего итерации: x = 3 , n = 6 После завершения третьей итерации, условие n < 3 становится ложным, следовательно цикл прекращается. n = 0 x = 0 while( n < 3 ) { n ++; x += n } Следующий пример проверяет наличее в строке определенного символа и прекращает поиск по окончании перебора всех символов строки или после того, как находит искомый символ. var found=false n=0 while (n


Оператор width особенно полезен при



Примеры

Оператор width особенно полезен при ссылках на объект Math в процессе вычислений.Например: with (Math) { a = PI * r*r x = r * cos(theta) y = r * sin(theta) }

Создание Массивов



Создание Массивов

Массив - упорядоченное множество значений, на которые вы ссылаетесь через имя массива и индекс. Например, у вас есть массив, с именем emp, который содержит имена служащих, индексированные их номером служащего. Так emp [1] будет служащий номер один, emp [2] служащий номер два, и так далее.

JavaScript не имеет явный тип данных массива, но из-за близкой связи между массивами и объектами свойств (смотрите Объектная Модель JavaScript). Вы можете определять тип объекта массива, следующим образом: function MakeArray(n) { this.length = n; for (var i = 1; i <= n; i++) { this[i] = 0 } return this } }

Здесь определяется массив такой что первое свойство, длина, (с индексом ноля), представляет число элементов в массиве. Оставшиеся свойства имеют индекс целого числа один или больше, и инициализированы к нолю.

Вы можете создавать массив вызывая new с именем массива, определяя число элементов, которые имеет. Например: emp = new MakeArray(20);

Здесь создается массив, с именем emp с 20 элементами, и элементы инициализируется к нолю.

Начальная загрузка Массива

Вы можете заполнять массив, просто присваивая значения к ее элементам. Например: emp[1] = "Casey Jones" emp[2] = "Phil Lesh" emp[3] = "August West" И так далее.

Вы можете также создавать массивы объектов. Например, пусть вы определяете тип объекта, именованный Employees, следующим образом: function Employee(empno, name, dept) { this.empno = empno; this.name = name; this.dept = dept; }

Затем следующие утверждения определяет массив этих объектов: emp = new MakeArray(3) emp[1] = new Employee(1, "Casey Jones", "Engineering") emp[2] = new Employee(2, "Phil Lesh", "Music") emp[3] = new Employee(3, "August West", "Admin")

Затем Вы можете легко показывать объекты в этом массиве, используя функцию show_props (определенную в разделе Объектная Модель JavaScript) следующим образом: for (var n =1; n <= 3; n++) { document.write(show_props(emp[n], "emp") + " "); }



Создание Новых Объектов



Создание Новых Объектов

И клиент и сервер JavaScript имеют строки предопределенных объектов. Кроме того, вы можете создавать ваши собственные объекты. Создание вашего собственного объекта требует двух шагов: Определить тип объекта, написанной функции. Создать образец объекта с new.

Чтобы определять тип объекта, создайте функцию для типа объекта, которая определяет его имя, и его свойства и методы. Например, пусть вы хотите создавать тип объекта для автомобилей. Вы хотите этот тип объектов, который будет назван car, и Вы хотите, чтобы он имел свойства для make, model, year, и color. Чтобы сделать это, вы должны написать следующую функцию: function car(make, model, year) { this.make = make; this.model = model; this.year = year; }

Замечание, используйте this, чтобы присвоить значения свойствам объекта, основанные на значениях функции.

Теперь вы можете создавать объект, с именем mycar следующим образом: mycar = new car("Eagle", "Talon TSi", 1993);

Это утверждение создает mycar и присваивает ему указанные значения для его свойств. Затем значение mycar.make - строка "Eagle", mycar.year - целое число 1993, и так далее.

Вы можете создавать любое число объектов car запрашивая к new. Например, kenscar = new car("Nissan", "300ZX", 1992)

Объект может иметь свойство, которое является самостоятельным другим объектом. Например, пусть вы определили объект с именем person следующим образом: function person(name, age, sex) { this.name = name; this.age = age; this.sex = sex; }

И затем подтверждаете два новых объектов person следующим образом: rand = new person("Rand McNally", 33, "M") ken = new person("Ken Jones", 39, "M")

Затем вы можете перезаписать определение car, чтобы включить свойство владельца, которое берет объект person, следующим образом: function car(make, model, year, owner) { this.make = make; this.model = model; this.year = year; this.owner = owner; }

Затем вы используете следующее: car1 = new car("Eagle", "Talon TSi", 1993, rand); car2 = new car("Nissan", "300ZX", 1992, ken)

Заметим, что вместо прохождения строкового литерала или целого числа вычисляет при создании новых объектов, вышеупомянутый ход утверждений объектов rand и ken как аргументов владельцев. Затем, если вы хотите выяснять имя владельца car2, вы можете обращаться к следующему свойству: car2.owner.name

Заметьте, что вы можете всегда прибавлять свойства к предопределенному объекту. Например, утверждение: car1.color = "black"Прибавляет свойство color к car1, и присваивает ему значение " black". Однако, это не воздействует на любые другие объекты. Чтобы прибавить новое свойство ко всем объектам того же самого типа, вы должны прибавить свойство к определению типа объекта car.



Старшинство Оператора



Старшинство Оператора

Старшинством операций называется порядок, в котором выполняются операции в сложных выражениях. Операции на одном уровне имеют равное старшинство. Вычисления производятся слева направо для всех бинарных операций, начиная с операций, перечисленных в верхней части списка, и заканчивая операциями в нижней части.

Старшинство операторов, от самого низкого до самого высокого будут следующие: Запятая, Присвоение =+=-=*=/=%=<<=>>=>>>=&=^=|= Выбор по условию ? : Логическое ИЛИ || Логическое И && Побитовы ИЛИ | Побитовый исключающее ^ Побитовое И & Неравенство != Равенство/Неравенство == != Сравнение <<=>> = Побитовый сдвиг << >> >>> Сложение/вычитание + - Умножите/деление * / % Отрицание/дополнение/унарный минус/инкримент/дикримент ! ~ - ++ -- Вызов, передача параметров () [].



Строки



Строки

Строковые литералы - ноль или большее количество знаков, располеженные в двойных (") или одинарных (') кавычках. Строки должен быть разделены кавычками того же самого типа; то есть или обе одинарные кавычки или двойные кавычки. Использование обратной двойной черты "\" позволяет вставлять в строку специальные символы. Приведем примеры строковых литералов: "Blah" 'Blah' "1234" "one line \n another line"

Специальные символы

Вы можете использовать следующие специальные символы в строковых литаралах JavaScript: \b указывает возврат на один символ. \f указывает перевод страницы. \n указывает новую цифру(знак) линии. \r указывает возврат каретки. \t указывает cимвол табуляции.

Символы Выхода

Вы можете вставлять кавычки внутри строки, предшествуя им наклонной чертой влево. Это известно как выход кавычек. Например, document.write("\"Вам следует принять ванну\",- сказал доктор и наморщил нос.") выводит "Вам следует принять ванну", - сказал доктор и наморщил нос.



Тег NOSCRIPT



Тег NOSCRIPT

Тег <NOSCRIPT> подобен тегу NOFRAMES для фреймов. HTML включенный внутри тега отображается как non-JavaScript браузера; код, включенный внутри тега hiden, игнорируется Navigator. Используйте этот тег, чтобы определить альтернативное содержание для браузера, который не поддерживают JavaScript, или в случае, если пользователь отключил JavaScript в Options | Network Preferences.

Например: This page uses JavaScript, so you need to get Netscape Navigator 2.0 or later!



Управление окнами



Управление окнами

В Navigator может быть открыто много окон одновременно. Пользователь может перемещаться среди этих окон, щелкая их, давая им фокус. Вы можете дать фокус окну запрограммированно, давая фокус объекту в окне или, точно определяя окно как адрес гиперссылки. Хотя вы можете изменять значения объекта во втором окне, которое не делает второе окно активным: текущее окно остается активным.

Активное окно - окно, которое имеет фокус. Когда окно имеет фокус, оно принесено на передний план и изменяется некоторым визуальным способом. Например, область заголовка окна могжет быть изменено в различный цвет. Визуальная команда вызова программы изменяется в зависимости от платформы, которую вы используете.

Пример 1: передача фокуса объекту в другом окне. Следующее выражение дает фокус текстовому объекту с именем city в окне checkboxWin. Так как текстовый объект получает фокус, то checkboxWin также получает фокус и становится активным окном. В примере также показано выражение, которое создает checkboxWin. сheckboxWin=window.open ("doc2.html") ... checkboxWin.document.musicForm.city.focus()

Пример 2: передача фокуса другому окну, при использовании гиперссылки. Следующее выражение определяет window2 как target гиперссылки. Когда пользователь нажимает на ссылку, фокус передается window2. Если window2 не существует, то оно создается. Load a file into window2



Условные Выражения



Условные Выражения

Условное выражение может иметь одну из двух значений, основанных на условии. Синтаксис (Условие)? Val1: val2

Если условие истинно, то выражение имеет значение val1, иначе имеет значение val2.

Например, status = (age >= 18) ? "adult" : "minor"Это утверждение присваивает значение "adult" переменной status, если age равно 18 или больше чем 18. Иначе, приписывает значение "minor" переменной status.



Выражения



Выражения

Выражение - любой имеющий силу набор литералов, переменных, операторов, и выражений, которые вычисляю простое значение. Значение может быть число, строка, или логическое значение. Существует два типа выражений: которые присваивают значение переменной, и которые вычисляют выражение без присваивания его переменной. Например, выражение

x = 7

Является выражением, которое приписывает x значение 7. Это выражение вычисляет 7. Такие выражения используют операторы присвоения. С другой стороны, выражение

3 + 4

Просто вычисляет 7; оно не выполняет присвоения. Операторы используемые в таких выражениях, упоминаются просто как операторы.

JavaScript имеет следующие выражения: Арифметические: например, вычисляет число Строковые: вычисляют строку символов, например "Джон" или "234" Логические: вычисляют true(истина) или false(ложь)

Язык JavaScript включает в себя значение null для переменных, которым не присвоено никакое значение. Любая попытка использовать переменную, имеющую значение null, в вычисляемом выражении приводит к ошибке, за исключением случая присваивания значения null переменной, например timerID = null.



Закрытие окон



Закрытие окон

Вы можете закрывать окна с помощью языка JavaScript. Следующие утверждения закрывают текущее окно:
Window.close ()
Self.close ()
Замечание: не использовать следующее утверждение в обработке результата close() Следующее утверждение закрывает окно, названное "msgWindow":
MsgWindow.close()
Теперь создадим пример, который открывает новое окно. Загрузим туда web-страницу, где при нажатие кнопки оно будет закрыто:

<html> <script language="JavaScript"> <!-- hide function closeIt(){ close(); } // --> </script> <center> <form> <input type=button value="Закрыть окно" onClick="closeIt()"> </form> </center> </html>

open() и close() - это методы объекта window. Мы должны помнить, что следует писать не просто open() и close(), а window.open() и window.close(). Однако в нашем случае объект window можно опустить - Вам нет необходимости писать префикс window, если Вы хотите всего лишь вызвать один из методов этого объекта (и такое возможно только для этого объекта).



Зарезервированные слова


Следующие зарезервированные слова не могут быть использованы в качестве имен объектов, переменных, функций, методов в коде программы JavaScript. Не все из этих слов используются в языке JavaScript на сегодняшний день - некоторые зарезервированы для использования в будущем.

abstract boolean break byte case catch char class const continue default do double else extends false final finally float for function goto if implements import in instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try var void while with



Значения



Значения

JavaScript распознает следующие типы велечин: Числа, типа 42 или 3.14159 Логические (Булевы), значения true или false Строки, типа "Howdy!" Пустой указатель, специальное ключевое слово, обозначающее нулевое значение

Это относительно малый набор типов значений, или типов данных, которые позволяют вам выполнять функции в ваших приложениях. Не существует никакого явного различия между целыми числами и реально-оцененными числа. И при этом не существует явного типа данных date в Navigator. Однако, объект date и связанные встроенные функции позволяют вам обрабатывать данные.

Объекты и функции - фундаментальные элементы в языке. Вы можете думать об объектах как об именнованных контейнерах для значений, и о функциях как о процедурах, которые ваше приложение может выполнять.