天天看點

資料和判定(二)------運算符

   運算符

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來說非常重要。

繼續閱讀