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动态设置样式实现代码及演示动画
Jan 25 Javascript
jquery实现excel导出的方法
Apr 04 Javascript
JavaScript中textRange对象使用方法小结
Mar 24 Javascript
jquery自动补齐功能插件flexselect用法示例
Aug 06 Javascript
表单元素值获取方式js及java方式的简单实例
Oct 15 Javascript
Bootstrap的modal拖动效果
Dec 25 Javascript
Map.vue基于百度地图组件重构笔记分享
Apr 17 Javascript
Js实现中国公民身份证号码有效性验证实例代码
May 03 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
Jul 19 Javascript
js实现跟随鼠标移动的小球
Aug 26 Javascript
LayUI+Shiro实现动态菜单并记住菜单收展的示例
May 06 Javascript
JavaScript实现简单的音乐播放器
Aug 14 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 $_ENV为空的原因分析
2009/06/01 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
PHP延迟静态绑定示例分享
2014/06/22 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
Prototype Array对象 学习
2009/07/19 Javascript
event.currentTarget与event.target的区别介绍
2012/12/31 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
JavaScript实现的select点菜功能示例
2017/01/16 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
Python 爬虫模拟登陆知乎
2016/09/23 Python
Python递归函数定义与用法示例
2017/06/02 Python
详解Python pygame安装过程笔记
2017/06/05 Python
SVM基本概念及Python实现代码
2017/12/27 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
linux系统都有哪些运行级别
2012/04/15 面试题
Linux上比较文件的命令都有哪些
2013/09/28 面试题
团队精神演讲稿
2013/12/31 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
关于环保的宣传稿
2015/07/23 职场文书
交通安全教育主题班会
2015/08/12 职场文书
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS