JScript中的条件注释详解

前端之家收集整理的这篇文章主要介绍了JScript中的条件注释详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

JScript 可以使用以下语句根据条件编译变量的值控制脚本的编译。既可以使用 JScript 提供的变量,也可以使用 @set 指令或 /define 命令行选项定义自己的变量。

@cc_on 激活条件编译支持

@if
根据表达式的值,有条件地执行一组语句。

@set
创建使用条件编译语句的变量。

@cc_on、@if 或 @set 语句激活条件编译。条件编译的一些典型用途包括在 JScript 中使用新功能、将调试支持嵌入到一个脚本中以及跟踪代码执行。

当编写由 Web 浏览器运行的脚本时,总是将条件编译代码放在注释中。因此,不支持条件编译的宿主可以忽略该代码。这是一个示例。

代码如下:

/*@cc_on @*/ /*@if (@_jscript_version >= 5) document.write("JScript Version 5.0 or better.
"); @else @*/ document.write("You need a more recent script engine.
"); /*@end @*/

此示例使用特殊的注释分隔符,仅当 @cc_on 语句激活条件编译之后才使用这些分隔符。不支持条件编译的脚本引擎显示一则消息,建议需要使用新的脚本引擎,而不会产生错误支持条件编译的引擎根据引擎的版本编译第一个或第二个 document.write。请注意,7.x 版表示 JScript .NET。有关更多信息,请参见检测浏览器功能

条件编译对于服务器端脚本和命令行程序也很有用。在这些应用程序中,可使用条件编译将其他函数编译到一个程序中,便于在调试模式下进行分析。

以下预定义变量可用于条件编译。

@_win32 如果在 Win32 系统上运行,并且没有指定 /platform 选项或指定了 /platform:anycpu 选项,则为 true;否则为 NaN。

@_win16
如果在 Win16 系统上运行,则为 true;否则为 NaN。

@_mac
如果在 Apple Macintosh 系统上运行,则为 true;否则为 NaN。

@_alpha
如果在 DEC Alpha 处理器上运行,则为 true;否则为 NaN。

@_x86
如果在 Intel 处理器上运行,并且没有指定 /platform 选项或指定了 /platform:anycpu 选项,则为 true;否则为 NaN。

@_mc680x0
如果在 Motorola 680x0 处理器上运行,则为 true;否则为 NaN。

@_PowerPC
如果在 Motorola PowerPC 处理器上运行,则为 true;否则为 NaN。

@_jscript
始终为 true。

@_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 语句可打开条件编译。条件编译变量通常用于针对 Web 浏览器编写的脚本中。在为 ASP 或 ASP.NET 页或命令行程序编写的脚本中很少使用条件编译变量,这是因为可以使用其他方法确定编译器的兼容性。

当编写用于网页的脚本时,始终将条件编译代码放在注释中。这样,不支持条件编译的宿主就可以忽略该代码。这是一个示例。

代码如下:

/*@cc_on document.write("JScript version: " + @_jscript_version + ".
"); @if (@_win32) document.write("Running on 32-bit Windows.
"); @elif (@_win16) document.write("Running on 16-bit Windows.
"); @else document.write("Running on a different platform.
"); @end @*/

原文链接:https://www.f2er.com/js/54641.html

猜你在找的JavaScript相关文章