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函数内部this指针指向的三种方法
Apr 23 Javascript
关于JS管理作用域的问题
Apr 10 Javascript
深入分析jsonp协议原理
Sep 26 Javascript
微信小程序 富文本转文本实例详解
Oct 24 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
Dec 27 Javascript
JavaScript错误处理和堆栈追踪详解
Apr 18 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
Jan 25 Javascript
利用js给datalist或select动态添加option选项的方法
Jan 25 Javascript
vue后台管理之动态加载路由的方法
Aug 13 Javascript
Vue一次性简洁明了引入所有公共组件的方法
Nov 28 Javascript
js实现简单进度条效果
Mar 25 Javascript
JS指定音频audio在某个时间点进行播放
Nov 28 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
将二维数组转为一维数组的2种方法
2014/05/26 PHP
成为好程序员必须避免的5个坏习惯
2014/07/04 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
JS之小练习代码
2008/10/12 Javascript
监控 url fragment变化的js代码
2010/04/19 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
2013/01/16 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
2016/02/22 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
Django实现全文检索的方法(支持中文)
2018/05/14 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
python中metaclass原理与用法详解
2019/06/25 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
python微信公众号开发简单流程实现
2020/03/09 Python
Python txt文件如何转换成字典
2020/11/03 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
泰国Robinson百货官网:购买知名品牌的商品
2020/02/08 全球购物
毕业生求职简历的自我评价
2013/10/23 职场文书
小学生防溺水广播稿
2014/01/12 职场文书
单位领导证婚词
2014/01/14 职场文书
聚美优品的广告词
2014/03/14 职场文书
司法建议书范文
2014/05/13 职场文书
企业党建工作汇报材料
2014/08/19 职场文书
小学中等生评语
2014/12/29 职场文书
教师辞职书范文
2015/02/26 职场文书
超市主管竞聘书
2015/09/15 职场文书