РИТ: Клиентские технологии - профессиональная конференция веб-разработчиков

Условная компиляция (Conditional Compilation)

Выражения, приведенные в данной статье будут работать только на движке JScript, но иногда бывают полезны.

JScript (читай Internet Explorer) поддерживает условную компиляцию. Не "ах" какая фича, но для разбора чужого кода и для общего развития знать полезно. Чтобы не было конфликта с другимим браузерами код условной компиляции заключают в контейнер многострочного комментария. Включается она директивой @cc_on:

/*@cc_on*/

Для работы с условными конструкциями используется комплект деректив @if, @elif, @else, @end. Для чего они нужны, думаю, понятно из имен.

/*@cc_on @*/
/*@if (@_win32)
    alert("Вы в IE под win32");
@elif (@_win16)
    alert("Вы под win16 O_o");
@else
    alert("Где же вы прячетесь?");
@end @*/

Как можно заметить из предыдущего примера, существует "встроенные" переменные условной компиляции:

  • @_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.

Если вы используете переменную формата @name, которая не существует, то она вернет NaN.

Также переменные можно создавать с помощью директивы @set.

/*@cc_on @*/
/*@if (@_jscript)
    @set @var1 = 3;
    alert(@var1); // Вернет 3
@end @*/

Также об условной компиляции и её директивах можно прочитать в MSDN.

Александр Бурцев 31 августа 2008

© Все права на данную статью принадлежат порталу fastcoder.org. Перепечатка в интернет-изданиях разрешается только с указанием автора и прямой ссылки на оригинальную статью. Перепечатка в печатных изданиях допускается только с разрешения редакции.

Комментарии

 
Rambler's Top100 Flede HTML valid CSS valid Технологический конкурс сайтов WebHiTech