天天看點

Javascript中大于和小于

一.關系操作符傳回類型(大于,大于等于,小于,小于等于)

  • var result1 = 15 > 13; //true

  • var result2 = 15 < 13; //false

  • 這幾個操作符傳回的都是布爾型

二.如果2個操作數都是數值,則按照普通的數值比較

三.如果2個操作時不全是數值,則會有以下規則

  • 如果兩個操作數都是字元串,則比較兩個字元串

    對應(兩個字元串中對應位置的每個字元)

    的字元編碼值
var res1 = 'alpha go';
var res2 = 'Backhome';

alert(res1 > res2);  //true
//字母B的字元編碼66,字母a的字元編碼是97


----------


var res1 = 'alpha go';
var res2 = 'Backhome';

alert(res1.toLowerCase() > res2.toLowerCase()); //false


----------


var res1 = '23';
var res2 = '3';

alert(res1 < res2);  //true
//'2'的字元編碼是50,'3'的字元編碼是51
           
  • 如果一個操作數是數值,則會把另個操作數轉化為一個數值,然後進行數值比較
var res1 = '23';
var res2 = ;

alert(res1 < res2); //false
// res1會轉化為數值23,23 > 3


----------
var res1 = 'a';
var res2 = ;

alert(res1 < res2); //false,因為'a'轉化為了NaN
//任何操作數與NaN比較,都是false
NaN <  //false
NaN >=  //false
           
一般來說,如果一個值不小于另外個值,則一定是大于或者等于那個值。特殊情況,在與

NaN

比較的時候,結果都傳回了

false

;
  • 如果有一個操作數是對象,調用這個對象的valueOf()方法,得到的結果按照前面的規則進行比較。如果對象沒有valueOf()方法,則調用toString()方法,得到的結果按照前面的規則進行比較。
var res1 = {_key : };
var res2 = ;

alert(res1 < res2);  //false
alert(res1 >= res2);  //false


----------


var res1 = {_key : };
var res2 = {_key : };

alert(res1 >= res2);    //true
alert(res1 < res2);     //false
alert(res1 > res2);     //false
alert(res1 <= res2);    //true
           
  • 如果操作數是布爾值,則轉化為數值,再進行比較。

繼續閱讀