官术网_书友最值得收藏!

1.1.1 表達式

開始學習程序設計時,最簡單方法就是觀察一些與JavaScript語言解釋器交互的典型實例。你鍵入一個語句,解釋器的響應就是把它求值這個語句的結果顯示出來。

你可以鍵入的一種基本語句就是表達式語句,形式上是一個表達式后面跟一個分號。一類最基本的表達式是數(更準確地說,你鍵入的表達式是一串數字,按照以10為基數的方式表示相應的數值)。如果你輸入下面的程序:

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

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

上面這樣的表達式稱為組合式,它們以另一些表達式作為其組成部分。這種組合式的形式是把一個運算符符號放在中間,兩個運算對象表達式分置左右,這種表達式稱為運算符組合式。得到運算符組合式的值的方法,就是把運算符代表的那個函數應用于給定的實際參數(下面常簡稱為實參),而所謂實際參數就是相應運算對象的值。

把運算符放在兩個運算對象之間的約定形式稱為中綴記法,這也是常用的數學表示法,這些多半是你早已在小學和日常生活中熟悉了的東西。與在數學中一樣,運算符組合式可以嵌套,其中的運算對象本身也可以是運算符組合式:

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

表示

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

就表示

對這些情況,我們說運算符+、-、*和/都是左結合的

原則上說,對于可以求值的表達式嵌套的深度及其整體的復雜程度,JavaScript解釋器并沒有任何限制。反倒是我們自己可能被一些并不很復雜的表達式搞糊涂,例如:

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

這樣就在視覺上區分出了表達式的主要成分。

即使對非常復雜的表達式,解釋器也總是按同樣的基本循環運作:從終端讀入用戶鍵入的一個語句,對該語句求值,然后打印得到的結果。這種運作模式常被說成解釋器在運行一個讀入-求值-打印循環。可以看到,完全不需要明確要求解釋器打印語句的值[3]

主站蜘蛛池模板: 清丰县| 石河子市| 武宁县| 浮梁县| 剑河县| 延庆县| 巴林左旗| 铜鼓县| 衡山县| 阿坝| 安泽县| 民县| 嘉鱼县| 嵩明县| 渭源县| 博客| 勃利县| 玉屏| 雅安市| 乃东县| 万宁市| 巴东县| 宝应县| 垦利县| 永春县| 门源| 北碚区| 都匀市| 横峰县| 保亭| 泸定县| 南召县| 三亚市| 瓦房店市| 景洪市| 阿拉善左旗| 都兰县| 中方县| 汉沽区| 三台县| 武强县|