Поделиться через


Объявление переменных и констант JScript

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

Объявление типизированных переменных и констант

В JScript можно объявить переменную, а затем объявить ее тип с помощью аннотации типа. В следующем примере объявляется переменная count типа int (целое число). Исходное значение не предоставляется, поэтому count имеет значение по умолчанию для типа int, равное 0 (нулю).

var count : int; // An integer variable.

Кроме того, можно присвоить переменной исходное значение:

var count : int = 1; // An initialized integer variable.

Константы, объявляемые почти так же, как и переменны, должны быть инициализированы. После определения значения константы его нельзя изменить. Пример.

const daysInWeek : int = 7;            // An integer constant.
const favoriteDay : String = "Friday"; // A string constant.
const maxDaysInMonth : int = 31, maxMonthsInYear : int = 12

Разумеется, при объявлении переменной определенного типа назначенное ей значение должно быть действительным для этого типа. Например, нет смысла присваивать целочисленной переменной строковое значение. Если так поступить, программа создаст ошибку TypeError, означающую несоответствие типов в коде. Ошибка TypeError — исключение, которое может возникнуть в выполняемом скрипте. Блок catch может перехватывать исключения, создаваемые программой JScript. Дополнительные сведения см. в разделе Оператор Try...Catch...Finally.

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

var count : int = 1; amount : int = 12, level : double = 5346.9009 

Следующий фрагмент кода проще читать:

var count : int = 1;
var amount : int = 12;
var level : double = 5346.9009;

При объявлении нескольких переменных в одной строке следует помнить о том, что аннотация типа применяется только к той переменной, которая находится непосредственно перед ней. В следующем коде x имеет тип Object, поскольку это тип по умолчанию, а для x не указан тип, тогда как y имеет тип int.

var x, y : int;

Объявление нетипизированных переменных и констант

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

В следующем примере объявляется одна переменная count.

var count;  // Declare a single declaration.

Поскольку тип данных не указан, используется тип данных для переменных и констант по умолчанию — тип Object. Пока значение не присвоено, переменная имеет значение по умолчанию: undefined. В следующем примере кода показаны эти значения по умолчанию в программе, компилируемой из командной строки.

var count; // Declare a single declaration using default type and value.
print(count); //Print the value of count.
print(typeof(count)); // Prints undefined.

Можно присвоить переменной исходное значение, не объявляя ее тип.

var count = 1; // An initialized variable.

В следующем примере несколько переменных объявляются с помощью одного оператора var.

var count, amount, level;  // multiple declarations with a single var keyword.

Чтобы объявить и инициализировать переменную в JScript, не присваивая ей определенного значение, нужно присвоить ей значение null. Пример.

var bestAge = null;

Объявленная переменная без присвоенного значения существует и имеет значение JScript undefined. Пример.

var currentCount;
var finalCount = 1 * currentCount; // finalCount has the value NaN since currentCount is undefined.

В JScript основное различие между null и undefined заключается в том, что null преобразуется в нуль (хотя это не нуль), а undefined преобразуется в значение NaN (не число). Следует отметить, что значения null и undefined считаются равными при сравнении при помощи оператора равенства (==).

Процесс объявления нетипизированных констант схож с процессом объявления переменных, но для констант нужно предоставить исходное значение. Пример.

const daysInWeek  = 7;
const favoriteDay  = "Friday";
const maxDaysInMonth  = 31, maxMonthsInYear = 12

Объявление переменных без ключевого слова var

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

noStringAtAll = ""; // The variable noStringAtAll is declared implicitly.

Невозможно использовать переменную, которая не была объявлена.

var volume = length * width; // Error - length and width do not yet exist.

Примечание

При объявлении переменных без ключевого слова var в быстром режиме (который используется в JScript по умолчанию) возникает ошибка компиляции.Чтобы скомпилировать программу в командной строке без ключевого слова var, необходимо выключить быстрый режим с помощью параметра /fast-.Отключать параметр быстрого выполнения программ в ASP.NET небезопасно, поскольку могут возникнуть проблемы с многопоточным выполнением.

См. также

Задачи

Практическое руководство. Компиляция кода JScript из командной строки

Основные понятия

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

Другие ресурсы

Переменные и константы в JScript

Типы данных в JScript