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 解析xml文件
Aug 09 Javascript
防止动态加载JavaScript引起的内存泄漏问题
Oct 08 Javascript
javascript与CSS复习(三)
Jun 29 Javascript
20款超赞的jQuery插件 Web开发人员必备
Feb 26 Javascript
jquery实现marquee效果(文字或者图片的水平垂直滚动)
Jan 07 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
Sep 04 Javascript
分析了一下JQuery中的extend方法实现原理
Feb 27 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
Jan 19 Javascript
Vue键盘事件用法总结
Apr 18 Javascript
angularjs实现时间轴效果的示例代码
Nov 29 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
Mar 01 Javascript
JS 正则表达式验证密码、邮箱格式的实例代码
Oct 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
php隐藏IP地址后两位显示为星号的方法
2014/11/21 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
javascript 数组的方法集合
2008/06/05 Javascript
学习ExtJS TextField常用方法
2009/10/07 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
JavaScript中的this关键字介绍与使用实例
2013/06/21 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
2015/09/05 Javascript
jquery判断复选框是否选中进行答题提示特效
2015/12/10 Javascript
浅谈js的ajax的异步和同步请求的问题
2016/10/07 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
2020/03/09 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
Python内置函数——__import__ 的使用方法
2017/11/24 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
工程管理造价应届生求职信
2013/11/13 职场文书
房屋租赁意向书
2014/04/01 职场文书
优秀求职信
2014/05/29 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
关于旅游的活动方案
2014/08/15 职场文书
个人批评与自我批评
2014/10/15 职场文书
2015年汽车销售员工作总结
2015/07/24 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis