!0-false否定-true;;
!!0-假雙重否定-假;
!1-真反轉-假;;
!!1-雙重否定-真;;
!-1-真反轉-假;
!!-1-真雙重否定-真。
第二,= =和= =:
= =:首先檢查兩個操作數的數據類型。如果相同,就比較壹下。如果它們不同,我將為您進行類型轉換,然後在將其轉換為相同類型後進行比較。= = =:如果類型不同,則直接為假。
具體對比過程:
1,雙等號= =:?
(1)如果兩個值類型相同,則比較三個等號(= = =)。
(2)如果兩個值類型不同,則它們可能相等,類型轉換應按照以下規則進行:
如果壹個為空,另壹個未定義,那麽它是相等的。
如果壹個是字符串,另壹個是數值,則將字符串轉換為數值,然後進行比較。
2、?三個等號= = =:
(1)如果類型不同,則壹定不相等。
(2)如果兩者都是數值並且是相同的值,那麽它們相等;如果其中至少有壹個是NaN,那就是不平等的。要判斷壹個值是否為NaN,只能使用is NaN()。
(3)如果兩者都是字符串並且每個位置的字符都相同,那麽它們是相等的,否則它們不是。
如果兩個值都為真或假,則它們相等。
如果兩個值引用同壹個對象或函數,則它們相等,否則它們不相等。
如果兩個值都為空或未定義,則它們相等。
擴展數據:
在比較js時,有三個規則:
1.如果比較中有布爾值,則布爾值將首先轉換為相應的數字,即0和1。
2.如果比較的壹方是數字,另壹方是字符串,則字符串將被轉換為數字。
3.當字符串直接轉換為bool時,空字符串“”轉換為false,所有其他字符串轉換為true。
參考資料:
百度百科-比較運算符