JavaScript中的運算符分為以下幾類: 算術運算符 比較運算符 邏輯運算符 賦值運算符 1. 算術運算符 算術運算符用於執行變數與/或值之間的算術運算。 給定 y=5,下麵的表格解釋了這些算術運算符: 註意點: a. 自增和自減 遞增和遞減運算符可以放在變數前也可以放在變數後: 當放在變數前, ...
JavaScript中的運算符分為以下幾類:
- 算術運算符
- 比較運算符
- 邏輯運算符
- 賦值運算符
1. 算術運算符
算術運算符用於執行變數與/或值之間的算術運算。 給定 y=5,下麵的表格解釋了這些算術運算符:
註意點:
a. 自增和自減
遞增和遞減運算符可以放在變數前也可以放在變數後:
當放在變數前,假如x=2,那麼x++表達式執行後的值為3,x--表達式執行後的值為1;i++相當於i=i+1,i--相當於i=i-1;(先引用,後計算)
當放在變數後,表達式執行後的結果與上面相同,但引用該表達式的變數會馬上取到執行後的值。(先計算,後引用)
b. 單元運算符“-”除了可以表示減號,還可以表示負號,例如:x=-y;“+”除了可以表示加法,還可以用於字元串的拼接,例如:"abc"
+
"def"
=
"abcdef"
c. js不同於python,是一門弱類型語言
靜態類型語言 一種在編譯期間就確定數據類型的語言。大多數靜態類型語言是通過要求在使用任一變數之前聲明其數據類型來保證這一點的。Java 和 C 是靜態類型語言。 動態類型語言 一種在運行期間才去確定數據類型的語言,與靜態類型相反。VBScript 和 Python 是動態類型的,因為它們確定一個變數的類型是在您第一次給它賦值的時候。 強類型語言 一種總是強制類型定義的語言。Java 和 Python 是強制類型定義的。您有一個整數,如果不明確地進行轉換 ,不能將把它當成一個字元串去應用。 弱類型語言 一種類型可以被忽略的語言,與強類型相反。JS 是弱類型的。在JS中,可以將字元串 '12' 和整數 3 進行連接得到字元串'123',然後可以把它看成整數 123 ,所有這些都不需要任何的顯示轉換。 所以說 Python 既是動態類型語言 (因為它不使用顯示數據類型聲明),又是強類型語言 (因為只要一個變數獲得了一個數據類型,它實際上就一直是這個類型了)。
d. NaN的運算關係
var d="yuan"; d=+d; alert(d);//NaN:屬於Number類型的一個特殊值,當遇到將字元串轉成數字無效時,就會得到一個NaN數據 alert(typeof(d));//Number //NaN特點: var n=NaN; alert(n>3); alert(n<3); alert(n==3); alert(n==NaN); alert(n!=NaN);//NaN參與的所有的運算都是false,除了!=
2. 比較運算符
比較和邏輯運算符用於測試 true 或者 false。給定 x=5,下麵的表格解釋了比較運算符:
註意點:
a. 字元串與數字比較
var bResult = "Blue" < "alpha"; alert(bResult); //輸出 true 在上面的例子中,字元串 "Blue" 小於 "alpha",因為字母 B 的字元代碼是 66,字母 a 的字元代碼是 97。 比較數字和字元串 另一種棘手的狀況發生在比較兩個字元串形式的數字時,比如: var bResult = "25" < "3"; alert(bResult); //輸出 "true" 上面這段代碼比較的是字元串 "25" 和 "3"。兩個運算數都是字元串,所以比較的是它們的字元代碼("2" 的字元代碼是 50,"3" 的字元代碼是 51)。 不過,如果把某個運算數該為數字,那麼結果就有趣了: var bResult = "25" < 3; alert(bResult); //輸出 "false" 這裡,字元串 "25" 將被轉換成數字 25,然後與數字 3 進行比較,結果不出所料。 總結: 比較運算符兩側如果一個是數字類型,一個是其他類型,會將其類型轉換成數字類型. 比較運算符兩側如果都是字元串類型,比較的是最高位的asc碼,如果最高位相等,繼續取第二位比較.
b. 等性運算符
等性運算符:執行類型轉換的規則如下: 如果一個運算數是 Boolean 值,在檢查相等性之前,把它轉換成數字值。false 轉換成 0,true 為 1。 如果一個運算數是字元串,另一個是數字,在檢查相等性之前,要嘗試把字元串轉換成數字。 如果一個運算數是對象,另一個是字元串,在檢查相等性之前,要嘗試把對象轉換成字元串。 如果一個運算數是對象,另一個是數字,在檢查相等性之前,要嘗試把對象轉換成數字。 在比較時,該運算符還遵守下列規則: 值 null 和 undefined 相等。 在檢查相等性時,不能把 null 和 undefined 轉換成其他值。 如果某個運算數是 NaN,等號將返回 false,非等號將返回 true。 如果兩個運算數都是對象,那麼比較的是它們的引用值。如果兩個運算數指向同一對象,那麼等號返回 true,否則兩個運算數不等。
3. 邏輯運算符
邏輯運算符用於測定變數或值之間的邏輯。給定 x=6 以及 y=3,下表解釋了邏輯運算符:
註意點:
&&若前後都為true,則返回後者的值;
||若前後都為true,則返回前者。
4. 賦值運算符
賦值運算符用於給 JavaScript 變數賦值。給定 x=10 和 y=5,下麵的表格解釋了賦值運算符:
JavaScript運算符學習腦圖
參考資料:
1. http://www.w3cschool.cn/javascript/js-operators.html
2. http://www.cnblogs.com/yuanchenqi/articles/6893904.html