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