JavaScript <= 小於等於

admin發表於2018-12-06

小於等於運算子可以比較左右兩側運算數的大小。

當左側運算數小於或者等於右側運算數時返回true,否則返回false。

JavaScript中的<=運算子與數學中對應的運算子相比更加複雜,不但數字之間可以比較大小,字串也可以比較,甚至不同型別資料也可以進行比較,具體規則,下面會通過程式碼例項一一演示,並且最後會給出總結。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(5<=5);
console.log(5<=3);
console.log(5<=8);

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201812/06/142838tsgyrdqsqdd9f3ng.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

數字之間的比較非常簡單,左側數字小於或者等於右邊數字,返回true,否則返回false。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log("4"<=5);

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201812/06/142904r090igwr69kkvd3s.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

字串與數字之間也可以比較大小,規則如下:

首先將字串轉換為數字,然後再進行比較,所以上述程式碼返回true。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(true <= 0);
console.log(true <= 2);
console.log(false <= 0);
console.log(false <= -1);
console.log(false <= -2);

如果是布林值與數字比較,那首先將布林值轉換為數字,規則如下:

如果是true,則轉換為1,false轉換為0,然後再進行比較。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log("ac" <= "ab");

字串之間也可以比較大小,規則如下:

(1).字串比較大小,事實是比較組成字串的字元ASCII碼的大小。

(2).從左到右依次比較字元ASCII碼的大小,直到決出勝負位置。

(3).比如先從第一個字元比較,由於都是"a",打成平手,然後再比較第二個,"c"的ASCII大於"b"的。

(4).所以返回false。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log("ac" <= "db");

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201812/06/143010gw97luu9wyhwlkl6.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

只要前面的已經取得決定性比較結果,後面的就沒有必要比較了。

就如同高位數字已經取勝,低位數字大小已經不再重要。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let obj={
  valueOf:function(){return 5}
}
console.log(obj <= 4);

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201812/06/143036h1etvt4fxqnt3o5n.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述程式碼是一個引用型別資料obj與值型別資料4之間比較大小。

首先會將引用型別資料轉換為值型別,實質就是呼叫了valueOf方法。

最終比較的是數字5與數字4,所以列印結果為false。

比較規則最終總結:

(1).如果運算元是數字,直接比較它們之間大小關係。

(2).如果運算元是數字和數字字串,首先將數字字串轉換為數字。

(3).如果運算元是數字和布林值,首先將true轉換為0,false轉換為0。

(4).如果運算元是字串,則比較字元的ASCII碼大小。

(5).如果運算元有引用型別,那麼首先將其轉換為值型別再進行比較。

相關文章