運算符
JavaScript有許多的運算符,你可以在你的程式中用來操作資料;你或許會從數學的角度認識它們。表 2-2 介紹了一些最常用的運算符。
表2-2。 JavaScript 運算符
運算符
它的用途
+
對兩個數進行加法運算或者連接配接兩個字元串。
-
從第一個數中減去第二個數。
*
對兩個數進行乘法運算。
/
第一個數除以第二個數。
%
獲得除法的餘數。舉例來說,98 % 10 = 8。
--
數字遞減1:隻有在變量中有效,我們稍後會提到。
++
數字遞增1:隻有在變量中有效,我們稍後會提到。
下面是它們的應用:
<html>
<body>
<script type="text/javascript">
document.write( 1 - 1 );
document.write( "<br />" );
document.write( 1 + 1 );
document.write( 2 * 2 );
document.write( 12 / 2 );
document.write( 1 + 2 * 3 );
document.write( 98 % 10 );
</script>
</body>
</html>
你會獲得如下的輸出:
2
4
6
7
8
跟數學一樣,JavaScript也定義了一些運算優先級。乘法比加法的優先級要高,是以這個計算1 + 2 * 3 會按如下的步驟執行:
2 * 3 = 6
6 + 1 = 7
所有的運算符都有一個優先級順序。乘法、除法和求餘的優先級相同,是以當它們出現在同一個等式中的時候,會按照從左到右的順序執行。試着計算一下:
2 * 10 / 5%3
計算結果是1,因為計算的順序是簡單的從左到右來讀的:
2 * 10 = 20
20 / 5 = 4
4%3 = 1
加法和減法同樣也擁有相同的優先級。
你可以使用括号來給某部分計算一個更高的優先級。例如,你可以按照如下的方式,把1和1相加,然後乘以5:
(1 + 1) * 5
計算的結果會是10,但沒有括号的話結果就會是6。實際上,使用括号是個非常好的主意,即使它們不是必需的時候,因為它們可以幫助我們使執行的順序變得清晰。
如果你使用不止一對括号,JavaScript會簡單的按照從左到右的順序執行,或者你使用了内部括号,則按照從内到外的順序執行:
document.write( ( 1 + 1 ) * 5 * ( 2 + 3 ) );
下面是這個計算的優先執行順序:
(1 + 1) = 2
(2 + 3) = 5
2 * 5 = 10
10 * 5 = 50
正如我們看到的,JavaScript的加法運算符把這些值加到一起。它如何處理這兩個值取決于你使用的資料類型,這個+運算符會把它們加到一起。 然而,如果你處理得資料其中有一個資料類型是字元串(使用分隔符來表示的),這兩個值會被連接配接在一起。試一下這個:
<script type = "text/javascript">
document.write( 'Java' + 'Script' );
document.write( 1 + '1' );
能夠對字元串使用加法運算是非常友善的(這種情況下也叫連接配接運算符),但如果你處理的其中一個值正好與你期望的資料類型不同,它也會産生意想不到的結果。我們稍後會看一些這樣的簡單例子,并且分解他們。
如果你處理的文本(literal)值都如我們目前所使用的那樣,那麼它不會有什麼大問題。可是,你在程式中需要處理的很多資料都是使用者輸入或者腳本産生的,是以我們沒有辦法預先準确的知道你将要處理的是什麼值。這就是變量(variables)需要引入的地方。變量是你腳本中的資料占位符,它們對JavaScript來說非常重要。