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 相关文章推荐
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
Mar 21 Javascript
Javasipt:操作radio标签详解
Dec 30 Javascript
javascript查询字符串参数的方法
Jan 28 Javascript
jQuery图片特效插件Revealing实现拉伸放大
Apr 22 Javascript
javascript中eval和with用法实例总结
Nov 30 Javascript
yarn与npm的命令行小结
Oct 20 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
Nov 01 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
Jan 17 Javascript
JavaScript输入框字数实时统计更新
Jun 17 Javascript
React从react-router路由上做登陆验证控制的方法
May 10 Javascript
利用Angular2的Observables实现交互控制的方法
Dec 27 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
Apr 26 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
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
php微信支付接口开发程序
2016/08/02 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
2017/04/25 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
JS内部事件机制之单线程原理
2018/07/02 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
Postman无法正常返回结果问题解决
2020/08/28 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频
2018/12/05 DOTA
Python自定义scrapy中间模块避免重复采集的方法
2015/04/07 Python
Python实现命令行通讯录实例教程
2016/08/18 Python
python的dataframe和matrix的互换方法
2018/04/11 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
Python可迭代对象操作示例
2019/05/07 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
2019/08/12 Python
Python数据库小程序源代码
2019/09/15 Python
python实现复制文件到指定目录
2019/10/16 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
美国在线印刷公司:PsPrint
2017/10/12 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
实习单位鉴定评语
2014/04/26 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
2015年个人审计工作总结
2015/04/07 职场文书
2016年母亲节寄语
2015/12/04 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
Python中的pprint模块
2021/11/27 Python