當前位置:成語大全網 - 書法字典 - 在js,為什麽!0是真的!!0是假的!1是假的!!1是真的!-1是假的!!-1為真

在js,為什麽!0是真的!!0是假的!1是假的!!1是真的!-1是假的!!-1為真

1.js中的數字0為假,非零為真!意思是反向。所以:

!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。

參考資料:

百度百科-比較運算符