文章目錄
- 多行與單行的JS控制台
- 延伸閱讀:解譯器與編譯器
- 互動式語言
- 在JavaScript控制台中測驗
- 在IronScheme中測驗
最近在看《電腦程式的構造與解釋(原書第二版)》,從中瞭解了門函數式程式設計語言Lisp方言Scheme。這種非主流的程式設計語言在書中說到了它的解譯器。在這兒,本人想簡單的講下 JavaScript 的控制台,因為它與Lisp的解譯器的作用相類似。
多行與單行的JS控制台
我們以《Professional JavaScript for Web Developers》英文書中變數一節的全域變數為執行個體。局部變數與全域變數的區別是 JavaScript 編程中的一個重點。下面的是在該書中全域變數的範例程式碼(見英文第2版第27頁):
function test(){ msg = 'hi';}test();msg;
firebug的JavaScript控制台是比較強大的工具。將上面的代碼拷到如所示的多行文字框中,點擊“運行”:
結果將會在控制台中列印出來。上面的例子是列印出字串“hi”。
這種控制台的命令列允許多行模式除了 firebug 外,還有IE 8 瀏覽器中帶的Web開發人員工具也支援,但是IE8的開發人員工具不太好用,原因是在控制台中列印出來的結果只能看到1/3,另2/3的大截無法看到。而且在文字框中的內容點擊“運行指令碼”後無故不見了。
另外,DebugBar的JavaScript控制台也是支援的,不過它需要與其同公司出品的兄弟工具(Companion.JS)配合使用。
而在命令列的單行模式中,在 Google Chrome 瀏覽器中有“Developer Tools”工具,裡面的控制台就是 Safari 瀏覽器的“複製”。Opera 瀏覽器中的“開發人員工具”個人感覺是仿照了 firebug 的設計風格,但在操作上的體驗相比而言有些麻煩。
延伸閱讀:解譯器與編譯器
在《程式設計語言:實踐之路(第2版)》第一章中有解譯器與編譯器的相關知識內容。本貼文略過不講。
互動式語言
在《SICP》中的第6頁第7頁:“在如LISP這樣的互動式語言裡”。下面是本人對“互動式語言”的筆記:
互動式語言支援使用者與電腦系統通過互動應答完成計算任務的語言,又稱:會話語言。
互動式語言的程式執行過程中可請求使用者輸入資料,指定下一步該採取的動作。使用者也可以終止程式的執行,等待其他工作完成後再從程式中斷點處接著繼續執行。互動式語言的程式執行一旦停止,系統仍還在該語言的執行環境中,運行程式設定的狀態(變數、賦的值等)保持不變。它的程式一般以解釋方式執行。使用者、程式員可在同一環境內輸入、調試、運行程式,這樣使得編程開發比較容易,編程環境對使用者也比較友善,但也影響了程式的執行效率。
比如: LISP語言、SQL語言等程式設計語言。
下面在實際中來測驗上述枯燥無味的、一套一套的理論。
在JavaScript控制台中測驗
理論講的不能沒有憑據,那麼不就成大話空話了嗎?OK,下面,在 Google Chrome 瀏覽器中,用快速鍵 Ctrl、Shift 和 J 來開啟“Develper Tools”,在控制台(console)輸入:
i = 5;
執行,列印的結果為:
5
接著再在控制台輸入:
i
執行,列印的結果為:
5
在IronScheme中測驗
在案頭上雙擊 IronScheme,運行互動式控制台。
在命令列中輸入:
(define a 3)
斷行符號後不列印出任何結果。接著再在命令列中輸入:
(define b (+ a 1))
斷行符號後同樣也不列印出任何結果。接著我們再一次在命令列中輸入:
echo (+ a b (* a b))
這是求算運算式的值。斷行符號後會列印出:
19