JScript中的条件注释详解

 更新时间:2015年04月24日 09:06:59   投稿:junjie  
这篇文章主要介绍了JScript中的条件注释详解,本文讲解了@cc_on、@if、@set、@_win32、@_win16、@_mac等条件注释语句及可用于条件编译的预定义变量,需要的朋友可以参考下

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.<BR>");
@else @*/
document.write("You need a more recent script engine.<BR>");
/*@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 + ".<BR>");
  @if (@_win32)
     document.write("Running on 32-bit Windows.<BR>");
  @elif (@_win16)
     document.write("Running on 16-bit Windows.<BR>");
  @else
     document.write("Running on a different platform.<BR>");
  @end
@*/

相关文章

  • JS 页面自动加载函数(兼容多浏览器)

    JS 页面自动加载函数(兼容多浏览器)

    兼容多个浏览器的自动加载函数。
    2009-05-05
  • JS PHP字符串截取函数实现原理解析

    JS PHP字符串截取函数实现原理解析

    这篇文章主要介绍了JS PHP字符串截取函数实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • token 机制和实现方式

    token 机制和实现方式

    这篇文章主要介绍了token 机制和实现方式的相关资料,帮助大家更好的理解和学习token,感兴趣的朋友可以了解下
    2020-12-12
  • javascript 兼容各个浏览器的事件

    javascript 兼容各个浏览器的事件

    这篇文章主要介绍了javascript 兼容各个浏览器的事件,需要的朋友可以参考下
    2015-02-02
  • js实现编辑div节点名称的方法

    js实现编辑div节点名称的方法

    这篇文章主要介绍了js实现编辑div节点名称的方法,可实现针对div节点名称的编辑及样式的选择效果,并且分别针对IE与FF浏览器的样式进行了选择与控制,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • JS自定义对象创建与简单使用方法示例

    JS自定义对象创建与简单使用方法示例

    这篇文章主要介绍了JS自定义对象创建与简单使用方法,结合实例形式分析了JavaScript创建与使用自定义对象的相关操作技巧,需要的朋友可以参考下
    2020-01-01
  • JS实现拖动滚动条评分的效果代码分享

    JS实现拖动滚动条评分的效果代码分享

    本文给大家基于js实现拖动滚动条评分效果,在项目开发中经常可以用到的,大家可以更加需要适当的添加修改,对js评分效果感兴趣的朋友一起看看吧
    2016-09-09
  • 纯js实现背景图片切换效果代码

    纯js实现背景图片切换效果代码

    现在纯粹用js的人越来越少了,更多的人喜欢jquery,可使我还是喜欢javascript,下面给出一个用javascript写的背景切换的小例子,各位大虾不要骂,只是写给自己看的,也供js事件的产考依据。
    2010-11-11
  • JavaScript XML和string相互转化实现代码

    JavaScript XML和string相互转化实现代码

    两个小function实现XML和string相互转化,需要的朋友可以参考下。
    2011-07-07
  • javascript引用类型之时间Date和数组Array

    javascript引用类型之时间Date和数组Array

    引用类型的值(对象)其实就是引用类型的一个实例,接下来,通过本篇文章给大家介绍javascript引用类型之时间Date和数组Array,需要的朋友可以参考下
    2015-08-08

最新评论