JavaScript (<) 小於運算子

admin發表於2018-10-20

小於運算子就是數學中的大於號(<)。

數學中的小於運算子功能很簡單,就是用來判斷運算子左邊的數字是否小於右邊的數字。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let a=5,b=2;
console.log(a<b);

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

a:3:{s:3:\"pic\";s:43:\"portal/201810/20/105439y70xpm60f7yyfch0.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

如果運算子左側運算數小於右側運算數,則返回true,否則返回false。

上述程式碼體現了這一點,但是JavaScript中的小於運算子比數學中的小於運算子要複雜的多。

運算子規則總結如下:

(1).如果兩個運算數都是數字,那麼直接比較大小即可,很簡單。

(2).如果運算數是數字和字串時,會首先將字串轉換為數字,再去比較。

(3).如果運算數中有布林值,那麼首先將true轉換為1,將false轉換為0。

(4).如果運算數存在物件,那麼首先將此物件轉換為其原始值,再去比較,如果轉換失敗則報錯。

(5).如果運算數都是字串,那麼將會比較字串中字元的ASCII碼的大小,後面會有演示。

關於資料型別轉換可以參閱JavaScript 資料型別轉換一章節。

程式碼例項如下:

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

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

a:3:{s:3:\"pic\";s:43:\"portal/201810/20/105523veo92jj7ttveeaue.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

兩個運算數都是數字,那麼直接比較它們的大小。

左側運算數小於右側運算數,運算子返回值為true。

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

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

a:3:{s:3:\"pic\";s:43:\"portal/201810/20/105610ai8ii7bc2pecyz44.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

當數字和字串比較的時候,首先將字串轉換為數字,然後再去比較。

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

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

a:3:{s:3:\"pic\";s:43:\"portal/201810/20/105643n88gopyugnluyylz.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

如果是非數字字串,那麼它永遠不小於數字,所以上述程式碼返回值是false。

[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("ant" < "anz");

a:3:{s:3:\"pic\";s:43:\"portal/201810/20/105728m1wwol1ofq8llzcd.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

字串之間比較大小,是比較字串中ASCII碼的大小。

比較規則如下:

(1).首先比較第一個字元的大小,沒有區分出大小。

(2).再比較第二個字元的大小,依然沒有區分出大小。

(3).那麼再比較第三個字元,t的ASCII碼值是116,而z的碼值是122,勝負已分。

(4).由此列印結果為true。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let date=new Date();
console.log(date < 8);
console.log(date.valueOf());

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

a:3:{s:3:\"pic\";s:43:\"portal/201810/20/105755thy187ry58hh4hny.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

如果運算數為引用型別物件,那麼首先將其轉換為對應的原始值,然後再進行比較。

時間物件的原始值就是它的時間戳,這時間戳數值自然比8要大,所以列印結果為false。

相關文章