JScript中的条件注释详解


Posted in Javascript onApril 24, 2015

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

@*/
Javascript 相关文章推荐
javascript中的注释使用与注意事项小结
Sep 20 Javascript
JQuery动画animate的stop方法使用详解
May 09 Javascript
jQuery实现冻结表格行和列
Apr 29 Javascript
JQuery中attr方法和removeAttr方法用法实例
May 18 Javascript
详解JavaScript中的blink()方法的使用
Jun 08 Javascript
JQuery实现鼠标滚轮滑动到页面节点
Jul 28 Javascript
JavaScript File分段上传
Mar 10 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
Aug 06 Javascript
Node.js实现连接mysql数据库功能示例
Sep 15 Javascript
JS实现移动端触屏拖拽功能
Jul 31 Javascript
Vue面试题及Vue知识点整理
Oct 07 Javascript
mpvue实现微信小程序快递单号查询代码
Apr 03 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
Apr 24 #Javascript
js闭包实现按秒计数
Apr 23 #Javascript
jQuery中使用each处理json数据
Apr 23 #Javascript
javascript数组去重方法汇总
Apr 23 #Javascript
javascript实现英文首字母大写
Apr 23 #Javascript
原生js和jquery实现图片轮播淡入淡出效果
Apr 23 #Javascript
浅谈javascript中for in 和 for each in的区别
Apr 23 #Javascript
You might like
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
JavaScript 对Cookie 操作的封装小结
2009/12/31 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
Python的Django框架中settings文件的部署建议
2015/05/30 Python
Python实现股市信息下载的方法
2015/06/15 Python
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
浅谈django的render函数的参数问题
2018/10/16 Python
对Python 语音识别框架详解
2018/12/24 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
Python XlsxWriter模块Chart类用法实例分析
2019/03/11 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
舞蹈毕业生的自我评价
2014/03/05 职场文书
初三学习决心书
2014/03/11 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书