- 計算機程序的構造和解釋(JavaScript版)
- (美)哈羅德·阿貝爾森等
- 891字
- 2024-06-06 19:10:11
1.1.1 表達式
開始學習程序設計時,最簡單方法就是觀察一些與JavaScript語言解釋器交互的典型實例。你鍵入一個語句,解釋器的響應就是把它求值這個語句的結果顯示出來。
你可以鍵入的一種基本語句就是表達式語句,形式上是一個表達式后面跟一個分號。一類最基本的表達式是數(更準確地說,你鍵入的表達式是一串數字,按照以10為基數的方式表示相應的數值)。如果你輸入下面的程序:

解釋器的響應是打印出[2]

表示數的表達式可以用運算符(例如+或者*)組合起來,形成復合表達式,表示把相應的基本函數作用于這些數。例如:

上面這樣的表達式稱為組合式,它們以另一些表達式作為其組成部分。這種組合式的形式是把一個運算符符號放在中間,兩個運算對象表達式分置左右,這種表達式稱為運算符組合式。得到運算符組合式的值的方法,就是把運算符代表的那個函數應用于給定的實際參數(下面常簡稱為實參),而所謂實際參數就是相應運算對象的值。
把運算符放在兩個運算對象之間的約定形式稱為中綴記法,這也是常用的數學表示法,這些多半是你早已在小學和日常生活中熟悉了的東西。與在數學中一樣,運算符組合式可以嵌套,其中的運算對象本身也可以是運算符組合式:

如常,我們可以用括號在運算符組合式里做分組,以避免歧義。如果忽略括號,JavaScript也遵循常規的規則:乘法和除法運算符的組合力比加減法運算符更強,因此,

表示

對這種情況,我們說*和/具有比+和-更高的優先級。加或減的序列從左到右地處理,乘和除的序列也一樣。這樣,

就表示

對這些情況,我們說運算符+、-、*和/都是左結合的。
原則上說,對于可以求值的表達式嵌套的深度及其整體的復雜程度,JavaScript解釋器并沒有任何限制。反倒是我們自己可能被一些并不很復雜的表達式搞糊涂,例如:

對這樣復雜的表達式,解釋器馬上就能求值得到57。我們幫助自己的方法可能是重寫上面的表達式,例如寫成下面的形式:

這樣就在視覺上區分出了表達式的主要成分。
即使對非常復雜的表達式,解釋器也總是按同樣的基本循環運作:從終端讀入用戶鍵入的一個語句,對該語句求值,然后打印得到的結果。這種運作模式常被說成解釋器在運行一個讀入-求值-打印循環。可以看到,完全不需要明確要求解釋器打印語句的值[3]。
- Delphi程序設計基礎:教程、實驗、習題
- C++面向對象程序設計(微課版)
- RabbitMQ Cookbook
- Android系統原理及開發要點詳解
- 從零開始學Linux編程
- JavaScript程序設計:基礎·PHP·XML
- Java Web應用開發項目教程
- Java Web開發實例大全(基礎卷) (軟件工程師開發大系)
- 基于GPU加速的計算機視覺編程:使用OpenCV和CUDA實時處理復雜圖像數據
- Python硬件編程實戰
- Scratch編程從入門到精通
- Getting Started with JUCE
- Mastering Unity 2017 Game Development with C#(Second Edition)
- Learning IBM Bluemix
- Python輕松學:爬蟲、游戲與架站