JScript는 다음 명령문을 사용하여 조건부 컴파일 변수의 값에 따라 스크립트 컴파일을 제어할 수 있습니다. JScript에서 제공하는 변수를 사용하거나 @set 지시문 또는 /define 명령줄 옵션을 사용하여 직접 변수를 정의할 수 있습니다.
@cc_on
조건부 컴파일 지원을 활성화합니다.
@if
표현식의 값을 기반으로 일련의 명령문을 조건부로 실행합니다.
@세트
조건부 컴파일 문을 사용하여 변수를 만듭니다.
@cc_on, @if 또는 @set 문은 조건부 컴파일을 활성화합니다. 조건부 컴파일의 일반적인 용도로는 JScript의 새로운 기능 사용, 스크립트에 디버깅 지원 포함, 코드 실행 추적 등이 있습니다.
웹 브라우저에서 실행할 스크립트를 작성할 때는 항상 조건부 컴파일 코드를 주석에 넣으세요. 따라서 조건부 컴파일을 지원하지 않는 호스트는 이 코드를 무시할 수 있습니다. 여기에 예가 있습니다.
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
document.write("JScript 버전 5.0 이상.
");
@else @*/
document.write("최신 스크립트 엔진이 필요합니다.
");
/*@end @*/
이 예에서는 @cc_on 문이 조건부 컴파일을 활성화한 후에만 사용되는 특수 주석 구분 기호를 사용합니다. 조건부 컴파일을 지원하지 않는 스크립팅 엔진은 오류를 생성하지 않고 새 스크립팅 엔진을 사용해야 함을 제안하는 메시지를 표시합니다. 조건부 컴파일을 지원하는 엔진은 엔진 버전에 따라 첫 번째 또는 두 번째 document.write를 컴파일합니다. 버전 7.x는 JScript .NET을 의미합니다. 자세한 내용은 브라우저 기능 감지를 참조하세요.
조건부 컴파일은 서버측 스크립트와 명령줄 프로그램에도 유용합니다. 이러한 응용 프로그램에서는 조건부 컴파일을 사용하여 디버그 모드에서 분석하기 위해 다른 기능을 프로그램으로 컴파일할 수 있습니다.
조건부 컴파일에는 다음과 같은 미리 정의된 변수를 사용할 수 있습니다.
@_win32
Win32 시스템에서 실행 중이고 /platform 옵션이 지정되지 않았거나 /platform:anycpu 옵션이 지정된 경우 True이고, 그렇지 않은 경우입니다.
@_win16
Win16 시스템에서 실행 중인 경우에는 True이고, 그렇지 않은 경우에는 True입니다.
@_mac
Apple Macintosh 시스템에서 실행 중인 경우 True이고, 그렇지 않은 경우입니다.
@_alpha
DEC Alpha 프로세서에서 실행 중인 경우 True이고, 그렇지 않은 경우입니다.
@_x86
Intel 프로세서에서 실행 중이고 /platform 옵션이 지정되지 않았거나 /platform:anycpu 옵션이 지정된 경우 True이고, 그렇지 않은 경우에는 True입니다.
@_mc680x0
Motorola 680x0 프로세서에서 실행 중인 경우 True이고, 그렇지 않은 경우입니다.
@_PowerPC
Motorola PowerPC 프로세서에서 실행 중인 경우 True이고, 그렇지 않은 경우입니다.
@_jscript
항상 사실입니다.
@_jscript_build
JScript 스크립팅 엔진의 빌드 번호입니다.
@_jscript_version
major.minor 형식의 JScript 버전 번호를 나타내는 숫자입니다.
@_debug
디버그 모드로 컴파일하면 true이고, 그렇지 않으면 false입니다.
@_fast
빠른 모드로 컴파일하면 true이고, 그렇지 않으면 false입니다.
주의
JScript .NET은 버전 번호 7.x를 보고합니다. JScript 8.0은 버전 번호 8.x를 보고합니다.
조건부 컴파일 변수를 사용하기 전에 조건부 컴파일을 켜야 합니다. @cc_on 문은 조건부 컴파일을 활성화합니다. 조건부 컴파일 변수는 웹 브라우저용으로 작성된 스크립트에서 일반적으로 사용됩니다. 조건부 컴파일 변수는 ASP나 ASP.NET 페이지용으로 작성된 스크립트나 명령줄 프로그램에서 거의 사용되지 않습니다. 왜냐하면 다른 방법을 사용하여 컴파일러 호환성을 확인할 수 있기 때문입니다.
웹페이지에서 사용할 스크립트를 작성할 때는 항상 조건부 컴파일 코드를 주석에 넣으세요. 이렇게 하면 조건부 컴파일을 지원하지 않는 호스트가 코드를 무시할 수 있습니다. 여기에 예가 있습니다.
/*@cc_on
document.write("JScript 버전: " @_jscript_version ".
");
@if (@_win32)
Document.write("32비트 Windows에서 실행 중입니다.
");
@elif (@_win16)
Document.write("16비트 Windows에서 실행 중입니다.
");
@else
Document.write("다른 플랫폼에서 실행 중입니다.
");
@끝
@*/