SNK Software
Web Studio Монополия Metaproducts Утилиты Игры
Монополию Web Studio Библиотека
Вебмастер Дельфи Работа на ПК Самоучитель
Для PHP Для Delphi
Веб-дизайн Программирование Компьютеры Девайсы Заметки
SNK Software Индустрия hardware Индустрия software
О студии Портфолио Сопровождение сайтов

Новые материалы

Девайсы:
Сравнительный обзор Nokia Lumia 920 и HTC 8X
Девайсы:
Обзор Nokia Lumia 820 – смартфона на WP8
Вебмастеру:
Настройка Apache, PHP и MySQL для Linux-VPS
Вебмастеру:
VPS на домашнем ПК: настройка сети в VM VirtualBox и Debian
Вебмастеру:
VPS на домашнем ПК: устанавливаем Linux Debian 6
Вебмастеру:
VPS на домашнем ПК: установка VM VirtualBox
Работа на компьютере:
Иные возможности текстового процессора Word
Работа на компьютере:
Вставка объектов
Работа на компьютере:
Таблицы в Word
Работа на компьютере:
Печать и сохранение документов
Работа на компьютере:
Сноски, колонтитулы, оглавление и указатели в Word

Синтаксис языка JavaScript

В этой главе:

Если вы уже знакомы с языками типа Java или C++, то синтаксис JavaScript покажется вам очень знакомым. Тем не менее, между языками есть многие важные отличия. Прежде всего, хотя JavaScript и поддерживает работу с объектами (взять ту же DOM), он, в отличие от тех же Java и C++ не является истинно объектно-ориентированным языком программирования. Другое не менее важное отличие от многих других языков (взять тот же C++, или, скажем, Delphi) состоит в том, что переменные в JavaScript не являются типизированными, т.е. строка, содержащая два символа 3, эквивалентна числу 33. В связи с этим, JavaScript не требует также и явного определения переменных.

При написании программ на JavaScript следует быть аккуратным в написании переменных, ключевых слов и функций, поскольку этот язык является регистро-зависимым. Иными словами, Hello и hello – две разные переменные.

Алфавит

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

Прописные латинские буквы:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Строчные латинские буквы:
a b c d e f g h i j k l m n o p q r s t u v w x y z
Десятичные цифры:
0 1 2 3 4 5 6 7 8 9
Пробельные символы:
Пробел, табуляция, перевод строки, возврат каретки, новая строка
Разделители:
. , ; : ? ‘ ! | / \ ~ _ ( ) { } < > [ ] # % & ^ - = + * " '

ПРИМЕЧАНИЕ
Сразу отметим, что разделители имеют специальный смысл для языка JavaScript, их значения и правила использования описываются ниже.

Специальные символы:
\n – новая строка, \r – возврат каретки, \\ - обратный слэш, \t – табуляция, \' – апостроф, \" – двойная кавычка, \xDD – символ ASCII в шестнадцатеричном представлении, \xDDDD – символ Unicode в шестнадцатеричном представлении

ПРИМЕЧАНИЕ
Специальные символы могут быть использованы для представления пробельных и отсутствующих на клавиатуре (неграфических) символов в строковых переменных.

Все прочие символы, включая символы кириллицы, также могут использоваться в программах JavaScript, но только внутри строковых переменных и комментариев. Более того, если в сценарии для XHTML-документа встречаются символы «<», «&», «]]>» или «--», то такой сценарий следует либо выносить в отдельный файл, либо обязательно заключать в HTML-комментарий. Если же в сценарии необходимо вывести сочетание символов, соответствующее закрывающему тегу HTML-комментария (-->), то он должен быть разделен на несколько отдельных частей при помощи склеивания строк или с использованием разделителя:

var closecom = "-\->"; // так верно var closecom = "-"+"->"; // так тоже можно var closecom = "-->"; // а так нельзя

Операции

Операции – это комбинации символов, определяющие действия по преобразованию значений. Интерпретатор JavaScript интерпретирует каждую из этих комбинаций как самостоятельную лексему. Все операции в языке JavaScript подразделяются на следующие типы:

При этом в JavaScript поддерживаются как бинарные, так и унарные операции. К бинарным относятся такие операции, в которых задействуются 2 операнда, а к унарным – только один операнд (операндом называют выражение, над которым проводится какая-либо операция). Кроме того, в JavaScript имеется один специальный оператор, который использует сразу три операнда.

Со всеми операциями, имеющимися в JavaScript, мы ознакомимся подробнее в следующей главе.

Значения и типы данных

Язык JavaScript поддерживает следующие типы данных:

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

Вообще же, как уже было отмечено, JavaScript не является типизированным языком. Соответственно, значения одного типа при необходимости автоматически преобразуются в значения другого – не только целые числа в дробные и наоборот, но и числа в строки, и т.д. Если вы знакомы с Delphi, то можете считать, что все переменные в JavaScript имеют тип variant.

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

Идентификаторы и переменные

Идентификаторы – это некоторые уникальные имена, используемые для обозначения в программе переменных, функций, методов или объектов. Они представляют собой последовательность из одной или более латинских букв, цифр и символов доллара ($) и подчеркивания, причем начинаться идентификатор должен только с буквы, символа подчеркивания или c $. В JavaScript 1.5 также допустимо использовать символы Unicode, иначе говоря, теперь вы можете называть переменные русскими буквами.

С каждым идентификатором, именующим переменную или функцию, ассоциируется определенное значение. Это может быть целое или дробное число, логическое значение, строка, объект или массив.

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

Если сразу присваивать значение не требуется, можно просто написать «var x;». При этом переменной x будет присвоено значение «undefined».

Переменные в JavaScript могут быть глобальными и локальными, в зависимости от того, где они объявлены. Так, если переменная объявлена внутри функции, то она будет локальной и видна только внутри этой функции. Важно отметить, что переменные внутри функций обязательно должны декларироваться с использованием ключевого слова var, в то время, как для глобальных такой синтаксис не обязателен.

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

a = "100" - 25; //получим 75 a = "100" + 25; //получим 10025

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

a = parseInt("100") + 25; //теперь получим 125

Суть проблемы кроется в том, что если рассматривать не такой очевидный пример, а нечто более типичное (например, a = b + c, где b и c могут быть данными, вводимыми пользователем или же являться результатом других вычислений), то вовсе не всегда можно сразу понять, почему программа выдает неверные результаты.

Константы

Особняком от переменных находятся константы, поддержка которых пока что реализована только в «оригинальной» версии JavaScript 1.5, поддерживаемой Mozilla- браузерами. Определение константы всегда начинается с ключевого слова const.

По своей сути константы аналогичны переменным, с той лишь разницей, что изначально, т.е. на этапе написания программы, присвоенное константе значение нельзя изменять по ходу ее выполнения. Например, если определить константу A1 и назначить ей значение 25, то попытка изменить ее значение в дальнейшем приведет к ошибке (или же будет попросту проигнорировано интерпретатором):

const A1 = 25; A1 = 10; // ошибка, значением A1 останется 25

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

СОВЕТ
Используйте префикс var для переменных так же в любом случае – это является правилом хорошего тона, и, кроме того, значительно упрощает визуальное нахождение объявлений переменных в исходном коде сценария.

Следует так же учитывать, что константы и переменные (а так же и функции) имеют общее пространство имен. Т.е. вы не можете использовать один и тот же идентификатор для переменной и константы.

Литералы

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

year=2011; // здесь year – переменная, а 2011 - литерал

Целочисленные литералы можно задавать в десятичном, шестнадцатеричном и восьмеричном виде. Десятичное значение задается последовательностью цифр, без нуля в начале числа (например, 123). Если в начале поставить 0, то это будет восьмеричным числом (например, 0173). Поскольку в шестнадцатеричной системе счисления используется больше десяти цифр

2011-07-25 // Есть вопросы, предложения, замечания? Вы можете обсудить это на форуме !

Избранное

SNK GSCP
SNK GSCP - новая библиотека для PHP 5!
Web Studio
Web Studio и Visual Workshop
Библиотека:
Стандарты на web-технологии
Монополия
Монополия Android
Загрузки:
скачать программы
Продукция:
программы и книги
Техподдержка / Связаться с нами
Copyright © 1999-2013 SNK. Все права защищены.
При использовании материалов с сайта ссылка на источник обязательна.
Рейтинг@Mail.ru