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 相关文章推荐
js 颜色选择器(兼容firefox)
Mar 05 Javascript
jQuery ready函数滥用分析
Feb 16 Javascript
js中关于new Object时传参的一些细节分析
Mar 13 Javascript
jQuery 自定义函数写法分享
Mar 30 Javascript
JS操作数据库的实例代码
Oct 17 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
Aug 22 Javascript
老生常谈onBlur事件与onfocus事件(js)
Jul 09 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
Jul 22 Javascript
基于vue2.0实现的级联选择器
Jun 09 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
Oct 11 Javascript
js 实现复选框只能选择一项的示例代码
Jan 23 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
May 20 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
PHP面向对象分析设计的经验原则
2008/09/20 PHP
php防盗链的常用方法小结
2010/07/02 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
js字符串引用的两种方式(必看)
2016/09/18 Javascript
Javascript typeof与instanceof的区别
2016/10/18 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
2017/05/23 Javascript
vue webpack打包优化操作技巧
2018/02/22 Javascript
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
js实现图片实时时钟
2020/01/15 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
python局域网ip扫描示例分享
2014/04/03 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
使用CSS3来制作消息提醒框
2015/07/12 HTML / CSS
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
保安拾金不昧表扬信
2014/01/15 职场文书
聚美优品励志广告词
2014/03/14 职场文书
微笑服务演讲稿
2014/05/13 职场文书
中秋手机店促销方案
2014/06/16 职场文书
2015个人半年总结范文
2015/03/09 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
现场施工员岗位职责
2015/04/11 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
全新239军机修复记
2022/04/05 无线电