Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
421 views
in Technique[技术] by (71.8m points)

comments - javascript: what does /*@ @*/ mean?

Can someone explain how the beginning and end of the html5shim script works?

the script starts with /*@ and ends with @*/like this:

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

What is the /*@ @*/ doing?

I would expect the /* */ sequence to comment out all lines in between them, but since the script executes, that cant be the case here? I'm confused.

found at:

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

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

IE's JScript supports ‘conditional compilation’, a trick of hiding special browser-specific information in comments. The idea is that /*@...@*/ is such an unusual sequence of characters that it is safe to repurpose it to introduce this new syntax-level feature.

html5shiv uses it to create a piece of code that won't even try to run on most browsers (which, like you did, will interpret the whole thing as a commend), but which has special meaning to IE.

MS doc here. No other JS engine supports this. Typically you might favour more explicit behaviour-sniffing code instead, but if you really need to detect an IE feature that doesn't expose itself to sniffing otherwise, it can be handy.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...