《零基礎學JavaScript》 JavaScript第三課 Making Decisions(上)
(此文章又長又臭,但是極其形象易懂,僅適合于JavaScript初學者,尤其是零基礎者)
作者博客:http://www.haoxiaoru.info/
3.0 引言
輸入到表格中的信息根據你網站用戶的地區和性別的不同,可能需要不同的確認信息。在頁面上移動的對象碰到瀏覽器窗口邊界時,要改變方向。頁面某一部分的背景可能要隨著頁面呈現時間而改變。
涉及到應該執行那個任務時,這些動作都需要JavaScript來做決定。JavaScript通過測試布爾值的結果是true或false來做決定。JavaScript根據結果是否為true來采取合適的動作。
我們使用的大部分變量不是布爾值。我們通過比較來把其他變量類型轉換為布爾值。可以比較兩個值是否相等,相等時返回true,不相等時返回false。如果我們比較兩個數字時,一個比另一個大,返回true,不必另一個大,返回false。
JavaScript使用比較運算符來比較兩個數字、字符串或其他類型的變量,然后得出true或false的布爾結果。
一旦我們獲得一個布爾結果,就可以判斷這個值,來決定接下來要執行哪部分代碼。JavaScript通過if語句來判斷。基于通過if判斷來做的決定,我們可以用JavaScript來執行任何數量的完全不同的任務。
這個系列的教程我們要探索JavaScript提供的通過執行比較和判斷來決定執行哪部分代碼的不同方法。
3.1 比較運算符
JavaScript已經使用“=”做了賦值運算符。不能用同一個運算符執行同一個任務,那么就需要另一個運算符來比較兩個變量的值是否相等。JavaScript提供兩個運算符來比較,分別是 “==” 和 “===” 。
“==” 運算符比較兩個值是否相等,如果相等就返回true;如果兩個值是不同的數據類型(比如一個是數字一個是字符串),那么在比較之前,他們要被轉換成相同的數據類型。JavaScript可以轉換兩種數據類型之一到另一種,而不改變變量包含的值。
“===” 與 “==” 的不同之處是,它不轉換數據類型。只有要比較的兩個變量的值和數據類型都相同的時候,才會返回true。
所以 ‘3′ == 3 返回true,而’3′ === 3 返回false。
--------------------------------------------------------------------------------
比較不只是比較是否相等,有時候我們還需要比較兩個值是否不相等,哪個大,哪個小。JavaScript也提供了這些條件的測試方法。
比較兩個值是否不相等,我們使用運算符 “!=” 或 “!==”。兩者的不同在于,”!=” 不考慮數據類型,如果兩個值相等就返回false,不相等就返回true;”!==” 考慮數據類型,如果兩個值相等且數據類型也相同就返回false,其他情況則返回true。
< 運算符比較左邊的值小于右邊,<=允許兩邊值相等。同理
> 運算符比較左邊的值大于右邊,>=允許兩邊值相等。
這里有一些比較結果返回true的例子。
‘2′ != ’smith’
‘3′ !== 3
5 < 7 ; 4 <= 7 ; 7 <= 7
‘abacus’ <= 'calculator'
‘abacus’ < 'abate'
‘Z’ < 'a'
‘10′ < '2'
1 兩邊字符串不相等
2 數據類型不同
3 顯而易見
4 a在字母表中比c先出現
5 字符串比較時,逐字母比較,前三個字母相等,就比較c和t。
6 筆記字符串時,其實是比較它們對應的ASCII碼值。大寫字母小于小寫字母。
7 字符串中包含字母時也是逐個比較。1<2。
這里有一些比較結果返回false的例子。
‘2′ == ’smith’
‘3′ === 3
7 < 7
‘abacus’ >=’calculator’
‘A’ < '9'
1 字符串不等
2 數據類型不等
3 顯而易見
4逐個比較ASCII碼值,a
5 ASCII碼值,數字小于字母
注意:ASCII編碼的順序從小到大是:數字——大寫字母——小寫字母。參見百科