JavaScript 大小比較
■知識(shí)點(diǎn)
比較大小關(guān)系的運(yùn)算符有4個(gè),詳細(xì)說(shuō)明如表所示。
大小運(yùn)算符 | 說(shuō) 明 |
< | 如果第1個(gè)操作數(shù)小于第2個(gè)操作數(shù),則返回true,否則返回false |
<= | 如果第1個(gè)操作數(shù)小于或等于第2個(gè)操作數(shù),則返回true,否則返回false |
>= | 如果第1個(gè)操作數(shù)大于或等于第2個(gè)操作數(shù),則返回true,否則返回false |
> | 如果第1個(gè)操作數(shù)大于第2個(gè)操作數(shù),則返回true,否則返回false |
操作數(shù)可以是任意類(lèi)型的值,但是在執(zhí)行運(yùn)算時(shí),會(huì)被轉(zhuǎn)換為數(shù)字或字符串,然后再進(jìn)行比較。如果是數(shù)字,則比較大小;如果是字符串,則根據(jù)字符編碼表中的編碼值,從左到右逐個(gè)比較每個(gè)字符。
■實(shí)例設(shè)計(jì)
如果兩個(gè)操作數(shù)都是數(shù)字,或者一個(gè)是數(shù)值,另一個(gè)可以被轉(zhuǎn)換成數(shù)字,則將根據(jù)數(shù)字大小進(jìn)行比較。
console.log(4>3); //返回true,直接利用數(shù)值大小進(jìn)行比較
console.log("4">Infinity); //返回false,無(wú)窮大比任何數(shù)字都大
如果兩個(gè)操作數(shù)都是字符串,則執(zhí)行字符串比較。
console.log("4">"3"); //返回true,根據(jù)字符編碼表的編碼值比較
console.log("a">"b"); //返回false,a編碼為61,b編碼為62
console.log("ab">"cb"); //返回false,c編碼為63
console.log("abd">"abc"); //如果前面相同,則比較下一個(gè)字符,以此類(lèi)推
注意:
字符比較是區(qū)分大小寫(xiě)的,一般小寫(xiě)字符大于大寫(xiě)字符。如果不區(qū)分大小寫(xiě),則建議使用toLowerCase()或toUpperCase()方法把字符串統(tǒng)一為小寫(xiě)或大寫(xiě)形式之后再比較。
如果一個(gè)操作數(shù)是數(shù)字,或者被轉(zhuǎn)換為數(shù)字;另一個(gè)是字符串,或者被轉(zhuǎn)換為字符串。則使用parselnt()方法將字符串轉(zhuǎn)換為數(shù)字,對(duì)于非數(shù)字字符串,將被轉(zhuǎn)換為NaN,最后以數(shù)字方式進(jìn)行比較。
如果一個(gè)操作數(shù)為NaN,或者被轉(zhuǎn)換為NaN,則始終返回false。
console.log ("a">"3") ; //返回true,字符a編碼為61,字符3編碼為33
console.log ("a">3) ; //返回 false,字符 a 被強(qiáng)制轉(zhuǎn)換為 NaN
點(diǎn)擊加載更多評(píng)論>>