【问题标题】:javascript: what does /*@ @*/ mean?javascript: /*@ @*/ 是什么意思?
【发布时间】:2011-11-01 11:55:12
【问题描述】:

谁能解释一下 html5shim 脚本的开头和结尾是如何工作的?

脚本以/*@ 开头,以@*/ 结尾,如下所示:

/*@cc_on(function(a,b){function ........ (this,document);@*/

/*@ @*/ 在做什么?

我希望 /* */ 序列注释掉它们之间的所有行,但是由于脚本执行,这里不能这样吗?我很困惑。

发现于:

http://html5shim.googlecode.com/svn/trunk/html5.js

【问题讨论】:

    标签: javascript comments


    【解决方案1】:

    【讨论】:

    • 但是他的示例在该脚本中没有使用任何元条件,所以为什么会在这里使用?
    • 因为使用@cc 保证它只会在 IE 上执行。
    【解决方案2】:

    IE 的 JScript 支持“条件编译”,这是一种在 cmets 中隐藏特定于浏览器的特殊信息的技巧。这个想法是 /*@...@*/ 是一个如此不寻常的字符序列,可以安全地重新利用它来引入这个新的语法级功能。

    html5shiv 使用它来创建一段代码,它甚至不会尝试在大多数浏览器上运行(就像你所做的那样,它将整个事情解释为一个推荐),但它对 IE 具有特殊意义。

    MS doc here。没有其他 JS 引擎支持这一点。通常,您可能更喜欢更明确的行为嗅探代码,但如果您确实需要检测一个不会暴露于嗅探的 IE 功能,它会很方便。

    【讨论】:

    • "没有其他 JS 引擎支持这个"...这不是重点吗? ;)
    • @Artfunkel:好吧,其他浏览器已经采用了其他浏览器扩展,因此其他人可能会实现 CC 的某些功能并不是不可能的。可能不是一个好主意,现在每个人都专门用它来检测 IE,不过......
    猜你喜欢
    • 2017-06-11
    • 2015-07-15
    • 2013-11-02
    • 2018-07-17
    • 1970-01-01
    • 2011-04-16
    • 2011-06-20
    • 2014-07-28
    • 1970-01-01
    相关资源
    最近更新 更多