Tukio la Kina la ECMAScript
- Mwizi wa kuzingatia Mfano wa kusaidia
- Mwizi wa kuzingatia Mfano wa muhimu
关系运算符执行的是比较运算。每个关系运算符都返回一个布尔值。
常规比较方式
关系运算符小于、大于、小于等于和大于等于执行的是两个数的比较运算,比较方式与算术比较运算相同。
每个关系运算符都返回一个布尔值:
var bResult1 = 2 > 1 //true var bResult2 = 2 < 1 //false
不过,对两个字符串应用关系运算符,它们的行为则不同。许多人认为小于表示“在字母顺序上靠前”,大于表示“在字母顺序上靠后”,但事实并非如此。对于字符串,第一个字符串中每个字符的代码都与会第二个字符串中对应位置的字符的代码进行数值比较。完成这种比较操作后,返回一个 Boolean 值。问题在于大写字母的代码都小于小写字母的代码,这意味这着可能会遇到下列情况:
var bResult = "Blue" < "alpha"; alert(bResult); //kushikilia true
Kwenye matokeo ya juu, jina la kawaida "Blue" linasababisha kumzuka "alpha", kwa sababu kodi ya herufi B ni 66, na kodi ya herufi a ni 97. Kuwaingia kwa uharibifu kwa uangalifu wa herufi wa kina, lazima kufanyika uharibifu wa ukurasa wa kina kwa kawaida (kutumia herufi kubwa au kikubwa) kabla ya kufanyika kusababisha kina:
var bResult = "Blue".toLowerCase() < "alpha".toLowerCase(); alert(bResult); //输出 false
把两个运算数都转换成小写,确保了正确识别出 "alpha" 在字母顺序上位于 "Blue" 之前。
比较数字和字符串
另一种棘手的状况发生在比较两个字符串形式的数字时,比如:
var bResult = "25" < "3"; alert(bResult); //Kutoa "true"
Kipengele hiki kinakisia neno lingana na namba "25" na "3". Kila thamani inaonekana kama neno, kwa hivyo inakisia kwa kilele cha herufi ("2" kina herufi 50, "3" kina herufi 51).
Kama inatumiwa namba kama thamani fulani, matokeo hayafikii kina huzingatia:
var bResult = "25" < 3; alert(bResult); //Kutoa "false"
Hapa, neno lingana na namba "25" inatokana na namba 25, kisha inakisia na namba 3, na matokeo hauonekana kina huzingatia.
Kila wakati tunakisia namba na neno, ECMAScript inakubali neno kama namba, kisha inakisia kwa kilele cha namba.
Kama neno lingana na namba hauwezi kutumika kama namba, nini tunaweza kumwita? Tunaongea kuhusu mifano iliyotokana:
var bResult = "a" < 3; alert(bResult);
Unaweza kumwita matokeo wa kipengele hiki? Herufi "a" inaonekana kwa kuwa hauweza kutumika kama namba ya maana. Kwa hivyo, kama inatumika methodi parseInt(), inarudi NaN. Kupitia sheria, kila muhimu wa kusababisha kina inarudi false, kwa hivyo kipengele hiki kinatoa false:
var bResult = "a" >= 3; alert(bResult);
Kwa kawaida, kama thamani mbili ya kusababisha matokeo wa kusababisha huzingatia kina huzirudi false, kama thamani fulani ina NaN, hali hiyo inaonekana kina huzingatia true.
- Mwizi wa kuzingatia Mfano wa kusaidia
- Mwizi wa kuzingatia Mfano wa muhimu