2009-01-06 86 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集成的東西。
非常感謝大家瞭解我請求的意圖。