《零基礎學JavaScript》 第二課 運算符Operators
(此文章又長又臭,但是極其形象易懂,僅適合于JavaScript初學者,尤其是零基礎者)
2.0 ASCII和Unicode編碼
計算機只能處理數字。當需要顯示字母或者其他符號時,計算機就會在其內部將它們轉換成對應的數字。計算機內存是按字節存儲信息的,每個字節可以存放0到255之間的數字,存儲字母或其他符號的時候,可能需要一個或多個字節的位置。
瀏覽器上使用比較多的兩個標準編碼是ASCII和Unicode。ASCII定義了0到127分別代表128個字符,其中33個控制字符和95個顯示字符。顯示字符包括52個英文字母大小寫和43個英文標點符號(包括空格)。ASCII沒有定義128-255代表什么,根據擴展編碼的不同,它們有不同的含義。目前使用比較多的是 ISO-8859-1(Latin-1或“西歐語言”) 它在ASCII的基礎上,定義了256個值。所以1個字節可以表示256個不同的字符。
世界上很很多語言,這個256個字符遠遠不夠用來表示這些字符。為了解決這個問題,有誕生了Unicode編碼,它最多使用4個字節來表示成百上千的字符。它的前128個字符與ASCII是相同的,使之兼容。
使用最多的Unicode編碼是UTF-8,它最少使用1個字節來表示大部分字符,同時使用2個字節或者4個字節來表示其他字符。UTF-16最少使用2個字節,UTF-32總是使用4個字節。
很多字符無法通過鍵盤直接輸入。所以JavaScript提供了一種使用轉義字符的方法。它用一個斜杠加字母u,再加4個十六進制數來表示16位的字符編碼。比如“u03c0”表示“π” 圓周率。
目前為止,我們看到了如何創建變量。知道如何使用和改變變量中存儲的值,才能獲得更多。我們使用運算符來做到這一點。
別管運算符這個名字。我們其實已經熟悉不少運算符了。
算數運算符
從可以處理數字和存儲數字的變量的操作符看起。
1 left + right
2 payment – change
3 width * height
4 pie / people
5 selection % choice
6 counter++
7 ++counter
8 counter–
9 –counter
這九個例子展示了如何使用操作符來獲取新的值。
前四個很明顯,就是加減乘除。不明顯的是,這些計算的結果不會改變變量的值,只是返回一個計算后的新值。我們需要把計算后結果賦值給一個變量,來調用它。
第五個運算符%是模運算,就是取兩個數相除后的余數。比如11%3的結果是2。
后四個與前五個不同,因為它們改變了變量的值。 counter++和++counter都使變量counter增加了1;counter–和–counter都使counter減少了1。++或者–放置在變量前還是后在單獨使用是沒有區別,與其它運算符一起使用時就不同了。
計算的時候,我們通常組合使用幾個運算符。那么計算的結果就會取決于它們的優先級和結合性。現在看一下JavaScript中運算符的優先級和結合性規則,幸運的是,很多規則跟我們在學校學到的規則是一樣的。
1“++變量”和“–變量” 要先使變量加或減1,然后參與運算。
2“變量++”和“變量–” 要先使變量參與運算,然后使變量加或減1。
3 加法、減法、乘法、除法和取模運算,從左到右的結合性。
可以使用圓括號來改變優先級順序,圓括號中的運算總是先執行。