Условная компиляция в javascript

Автор: Aport Четверг, Январь 29th, 2015 Нет комментариев

Рубрика: Разное

 

Условная компиляция

Начиная с Internet Explorer 4.0, язык JScript поддерживает условную
компиляцию сценариев. Она была введена в JScript для того, чтобы одновременно
обеспечить и использование новых возможностей языка, и совместимость
со старыми версиями обозревателей. Типичными примерами использования
условной компиляции являются добавление в сценарий отладочного кода
и трассировка исполнения сценария. Условная компиляция включается директивой
@cc_on или директивами @if или @set. Директивы условной компиляции всегда
следует помещать внутрь комментариев с тем, чтобы обозреватели, которые
не поддерживают условную компиляцию (например, Netscape Navigator),
их игнорировали. Пример:

/*@cc_on @*/

/*@if (@_jscript_version >= 4)

alert(«JScript версии 4 или выше»);

@else @*/

alert(«Ваш JScript устарел.»);

/*@end @*/

В этом примере использованы комментарии специального вида, которые
используются только после директивы @cc_on. Обозреватели, которые не
поддерживают условную компиляцию, увидят здесь только строку alert(«Ваш
JScript устарел.») и исполнят ее.

Переменные условной компиляции

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

Переменные условной компиляции

Переменная

Описание

@_win32 .

true при выполнении в системе Win32

@_win16

true при выполнении в системе Win16.

@_mac

true при выполнении в системе Apple Macintosh.

@_alpha

true при выполнении на процессоре DEC Alpha.

@_x86 .

true при выполнении на процессоре Intel

@_mc680x0

true при выполнении на процессоре Motorola 680×0.

@_PowerPC

true при выполнении на процессоре Motorola PowerPC.

@_jscript .

Всегда true

@_jscript_build

Номер сборки JScript.

@_jscript_version

Номер версии JScript в формате m.n.


Директивы условной компилляции:


@cc_on

NN
n/a    IE 4.0
ECMA n/a

Директива @cc_on включает условную компиляцию. Альтернативный способом
включения условной компиляции является использование директив @if или
@set, не заключенных в комментарий.

Синтаксис:

@cc_on


@if

NN
n/a    IE 4.0
ECMA n/a

Директива @if выполняет заданный фрагмент кода в зависимости от значения
выражения.
Синтаксис:

@if (условие1)

инструкции1

@elif (условие2)

инструкции2

@else

инструкции3

@end

Если условие1 истинно, то выполняются инструкции1. Если условие1 ложно,
присутствует необязательная директива @elif и условие2 истинно, то выполняются
инструкции2. В противном случае, если присутствует необязательная директива
@else, то выполняются инструкции3; если ее нет, то управление передается
следующему оператору. Данная директива может содержать несколько ветвей
@elif, но все они должны предшествовать ветви @else.

Пример:

@if (@_win32)

alert(«Работаем в Windows NT/95/98″)

@else

alert(«Неизвестная операционная система!»);


@set

NN
n/a    IE 4.0
ECMA n/a

Директива @set создает переменные условной компиляции. Имена таких
переменных имеют синтаксис переменных JavaScript, но должны начинаться
с символа «@». Значение, которое присваивается переменной,
может быть любым выражением JavaScript (возможно с использованием ранее
определенных переменных условной компиляции), которое возвращает числовое
или логическое значение.
Синтаксис:

@set @переменная = значение

Примеры:

@set @var1 = 1

@set @var2 = (@var1 + 1) * 10;

@set @var3 = @_jscript_version

Если переменная используется до ее определения, то она имеет значение
NaN. Поскольку это единственное значение, которое не равно самому себе,
то проверку определенности значения переменной следует делать так:

@if (@myVar != @myVar) …

 

Источник: yapro.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты