2009-01-06 122 views
2

在构建我的解决方案时,我是否可以预编译我的JS代码?我希望在浏览器之前了解常见问题。理想情况下,我会构建sln,并在必要时从构建事件中获取插件或调用,以检查针对Java编译器的js代码。 非常感谢您提前!从VS2008 IDE预编译JavaScript

回答

2

Javascript是一种解释型语言,它不会被编译到运行时。另外,JavaScript与Java有很少的关系。在Sun发布Java的同时,Netscape发布了JavaScript,并且在它们之间进行了某种营销交易。否则,他们是无关的。

0

Javascript未编译,与Java无关,但有一些共享语法,最好通过将您的应用程序加载到浏览器中进行测试。

有一些JS测试框架/工具可用,但我不能自己推荐任何一个。

4

尽管是许多其他的海报说,在很多情况下(包括在Firefox浏览器中发现了Mozilla SpiderMonkey的引擎)投票其实compiled into bytecodes,隐约类似(但不兼容)所使用的那些在Java中。你只是看不到编译器的输出,因为它永远不可用,只有Javascript字节码解释器。也不可能保存已编译的字节码以供重用(至少在Web浏览器上下文中;在Spidermonkey引擎的替代使用中,我认为可以将编译的字节码保存在内存中以供重用,但不能以可以据我所知,将其保存到磁盘以备将来使用)。

我使用一个Javascript外壳JSDB它也使用Spidermonkey引擎;当你加载一个文件时,它会在它运行一行代码之前抱怨语法错误。不过,这与Java的编译类型不同; Javascript是一种松散类型的语言,因此它不会像Java编译器那样捕捉问题(例如,抱怨太阳下的最后一件事,它知道你没有做对)。

话虽如此,我会第二个JSLint,因为它可能会抓住你的许多错误。

作为一个附注,Rhino项目让你compile Javascript into Java classes;我从来没有尝试过,但它听起来很有趣。

+0

+1。 Javascript一直在编译。 – Triptych 2009-01-06 15:26:37

2

我为滥用术语“编译”而道歉。我完全理解编译和解释语言之间的区别。我感兴趣的是在构建过程中对我的语法进行例行检查,因此打字错误,无效方法调用等都会被标记出来。我要研究一下Jason S为此推荐的内容。我也完全意识到JavaScript不是Java,但是之前已经阅读过,您可以通过Java Compiler运行您的JS代码进行语法检查。我希望能找到更好的与VS集成的东西。
非常感谢大家了解我请求的意图。