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

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

Начиная с 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 680x0.

@_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) …

Автора ищите здесь.

Оцени публикацию:
  • 3,10
Оценили человек: 3

Похожие статьи:

Справочники и учебники:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

Новые заметки:

Про что мы забываем когда делаем оценку задачи по времени

Список вопросов для собеседования разработчика по телефону

Symfony2 авторизация без Doctrine2 для чайника

Phpstorm7 LiveEdit

Жесткий хабр или не хабр, тогда кто?

Яндекс.Деньги мошенничество

Как узнать какие страницы в поиске яндекса или это секрет

Последние комменты:

Yapro CMS:

Здравствуйте, Гость | Войти | Регистрация | Карта сайта | RSS ленты | Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2018 YaPro.Ru

Главная » Веб-мастеру » JavaScript »