什麼是 JScript?
JScript 是由微軟開發的活動腳本語言,基於 ECMAScript 規范實現。Internet Explorer 中的 JavaScript,實際上是指 JScript。JScript 已被 Windows Script Host(WSH)支持。JScript 最新的版本(JScript.NET)基於尚未定稿的 ECMAScript 4.0 ,並且可以在.Net環境下編譯。
.NET Framwork 中包含有 JScript 編譯器 :JScriptCompiler (C:WINDOWSMicrosoft.NETFrameworkv2.0.50727jsc.exe),其可以將 JScript 文件編譯為一個 .exe 或者 .dll 文件。
為了方便使用,我們可以將 JScriptCompiler 的路徑加入到環境變量(環境變量 –> 系統變量 –> Path)中。在 CMD 程序運行窗口中直接調用命令 “jsc”,就可以看到編譯器相關的幫助選項。
jsc [選項] [[選項] …]
JScript 編譯器選項
– 輸出文件 -
/out:
/t[arget]:exe 創建控制台應用程序(默認)
/t[arget]:winexe 創建 Windows 應用程序
/t[arget]:library 創建庫程序集
/platform:
– 輸入文件 -
/autoref[+|-] 基於導入的命名空間和完全限定名稱自動引用程序集(默認情
況下為 on)
/lib:
/r[eference]:
– 資源 -
/win32res:
/res[ource]:
/linkres[ource]:
– 代碼生成 -
/debug[+|-] 發出調試信息
/fast[+|-] 禁用語言功能以使代碼更好地生成
/warnaserror[+|-] 將警告視為錯誤
/w[arn]:
– 雜項 -
@
/? 顯示幫助
/help 顯示幫助
/d[efine]:
/nologo 不顯示編譯器版權標志
/print[+|-] 提供 print() 函數
– 高級 -
/codepage:
/lcid:
/nostdlib[+|-] 不導入標准庫(mscorlib.dll)並將 autoref 默認值更改為 off
/utf8output[+|-] 以 UTF-8 字符編碼形式發出編譯器輸出
/versionsafe[+|-] 為沒有標記為“override”或“hide”的成員指定默認值
創建 .exe 文件
先創建 JS 文件(C: esthelloWorld.js),內容如下:
var date = new Date(); print(Hello World! Today is + date );
接著我們進行編譯:
C: est>jsc helloWorld.js Microsoft (R) JScript Compiler version 8.00.50727 for Microsoft (R) .NET Framework version 2.0.50727 Copyright (C) Microsoft Corporation 1996-2005。保留所有權利。
你會驚訝的發現,C: est 目錄下多了個 helloWorld.exe 文件,非常簡單吧,呵呵
最後我們可以直接執行 helloWorld.exe 文件:
C: est>helloWorld Hello World! Today is Fri Jun 3 23:13:20 UTC+8 2011
大功告成!!
創建 .dll 文件
.dll 文件的創建也同樣非常簡單:
package LibHW { class HelloWorld { function run() { var date = new Date(); return Hello World! Today is + date; } } }
編譯語句:
C: est>jsc /t:library LibHW.js
對於生成的 LibHW.dll 文件,我們可以通過創建新的 .exe 文件(consumer.js –> consumer.exe)以導入模塊的方式調用(類似於 Python)。
先創建 consumer.js 文件:
import LibHW; var hw = new LibHW.HelloWorld(); print(hw.run());
然後編譯 consumer.js 文件,執行 consumer.exe:
C: est>jsc consumer.js Microsoft (R) JScript Compiler version 8.00.50727 for Microsoft (R) .NET Framework version 2.0.50727 Copyright (C) Microsoft Corporation 1996-2005。保留所有權利。 C: est>consumer Hello World! Today is Sat Jun 4 00:42:35 UTC+8 2011
當然你還可以創建 windows 的應用,上例中的 consumer.js 文件修改如下:
import System.Windows.Forms; // this has a MessageBox class import LibHW; var hw = new LibHW.HelloWorld(); MessageBox.Show( hw.run(), "Dude!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation );
編譯語句:
C: est>jsc /t:winexe consumer.js
雙擊新生成的 consumer.exe 文件,哈哈,是不是很有成就感!
從上面的例子可以看到 JScript 的潛力無限,沒有做不到,只有想不到。
擴展閱讀:
《Make your javascript a Windows .exe》