Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab-js_new.doc
Скачиваний:
4
Добавлен:
13.11.2019
Размер:
92.16 Кб
Скачать

Рубанчик В.Б.

Лабораторная работа "Основы языка сценариев JavaScript "

8/ 8

Лабораторная работа

Тема: "Основы языка сценариев JavaScript"

Цель работы: Научиться создавать Web-страницы со встроенными фрагментами на JavaScript

Основы языка JavaScript

1. Комментарии.

В JavaScript применяются строковые (//) и блочные (/*...*/) комментарии.

2. Переменные.

JavaScript имеет в основе облегченный синтаксис языка Си. Поэтому, в частности, в именах переменных и функций учитываются регистры букв.

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

Примеры идентификаторов:

Number_hits temp99 _name $1

Примечание.

Начиная с JavaScript 1.5, в идентификаторах разрешается использовать символы ISO  8859‑1 и Unicode (например, å и ü) и записывать символы в виде escape-последовательностей \uXXXX.

Переменные не типизированы. Новые переменные добавляются в программу одним из двух способов.

а) Переменные создаются в момент присваивания им первого значения:

x=5;

counter=0;

б) В случае, когда необходимо создать неинициализированную переменную или управлять областью действия новой (неважно, инициализируемой или нет), в объявлении применяется ключевое слово var:

var x, x1, counter=0;

Значение неинициализированной переменной имеет неопределенный тип (undefined). Однако если переменной присвоено значение null, то она уже считается определенной.

Если неинициализированная переменная попала в вычисляемое выражение, то

а) если это числовое выражение, оно получит значение NaN (not-a-number),

б) в нечисловых выражениях будет сгенерирована ошибка.

Примеры:

1) var x;

z=x-1; //NaN

2) var x;

f(x); //здесь f()— некоторая функция; будет выдано сообщение об ошибке

Область определения переменной

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

Определение новой глобальной переменной можно рассматривать как добавление объекту окна (фрейма) нового свойства. Поэтому из одного окна (или фрейма) можно получить доступ к глобальным переменным другого окна или фрейма.

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

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

Пример.

а)

function f(){

var x=5

}

y=x+1 //ошибка!

//переменная х локальная

б)

function f(){

x=5

}

f() //создана глобальная

// переменная

y=x+1 // =6

Примечание.

Бросается в глаза, что определения переменной x и вызовы функции f(x) в примерах не завершаются точкой запятой. Синтаксис JavaScript не требует обязательно заканчивать каждую конструкцию языка точкой с запятой, так как для интерпретатора разделителем конструкций является также символ "новая строка".

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

x=1; y=2

Во-вторых, если в конструкции if-else к части if относится только один оператор и нет фигурных скобок:

if(a!=b) x=1; else .. .

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

Особенности типизации

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

var answer = 50;

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

answer = "Это новое значение переменной answer";

Благодаря динамической типизации подобное присваивание не вызовет ошибки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]