Conditional Compilation Variables
On the previous page you saw some strange looking variables such as @_win32. These are predefined conditional compilation variables you can use to test for certain aspects of IE or the computer at large:
Variable | Description |
---|---|
@_win32 | Returns true if running on a Win32 system, otherwise NaN. |
@_win16 | Returns true if running on a Win16 system, otherwise NaN. |
@_mac | Returns true if running on an Apple Macintosh system, otherwise NaN. |
@_alpha | Returns true if running on a DEC Alpha processor, otherwise NaN. |
@_x86 | Returns true if running on an Intel processor, otherwise NaN. |
@_mc680x0 | Returns true if running on a Motorola 680x0 processor, otherwise NaN. |
@_PowerPC | Returns true if running on a Motorola PowerPC processor, otherwise NaN. |
@_jscript | Always returns true. |
@_jscript_build | The build number of the JScript scripting engine. |
@_jscript_version | A number representing the JScript version number in
major.minor format. IE4 supports JScript 3.x The version number reported for JScript .NET is 7.x. |
@_debug | Returns true if compiled in debug mode, otherwise false. |
@_fast | Returns true if compiled in fast mode, otherwise false. |
In most cases, you probably will be limited to just using @_win and @jscript_build:
/*@cc_on @if (@_win32) document.write("OS is 32-bit. Browser is IE."); @else document.write("OS is NOT 32-bit. Browser is IE."); @end @*/
User defined Variables
You can also define your own variables to use within the conditional compilation block, with the syntax being:
@set @varname = term
Numeric and Boolean variables are supported for conditional compilation, though strings are not. For example:
@set @myvar1 = 35 @set @myvar3 = @_jscript_version
The standard set of operators are supported in conditional compilation logic:
- ! ~
- * / %
- + -
- << >> >>>
- < <= > >=
- == != === !==
- & ^ |
- && |
You can test if a user defined variable has been defined by testing for NaN:
@if (@newVar != @newVar) //this variable isn't defined.
This works since NaN is the only value not equal to itself.
- Conditional Compilation overview
- Conditional Compilation variables
- Conditional Compilation example- try/catch statements