2017-07-29 102 views
-12

在JavaScript中,是做什麼的區別: '!'區別! !和= JavaScript中

if (a !b) 
{ 
// something here 
} 

if (a != b) 
{ 
// something here 
} 

我知道,是'邏輯不'和'!='是'不等於',但我不確定兩者之間的區別。 雖然我在SoloLearn項目中看到過兩個例子。

以上都沒有給出我的網頁瀏覽器(鉻)的任何錯誤或警告。 我不確定如何使用chrome的調試控制檯。

我不是說「區別!==和!===」btw。

+3

'a!b'是一個語法錯誤。這並不意味着什麼。 –

+0

如果你只是測試它,你會看到第一個給你一個錯誤,所以無效。 – sheplu

+1

不是一個真正的問題,前提是無效的,並引發一個意想不到的令牌!例外,沒有價值,並可以在控制檯中輕鬆驗證。 –

回答

1

平原!是邏輯運算符,表示相反。例如,用於切換布爾運算符時,你總是不知道當前狀態的常見做法是以下幾點:

// Toggle Foo, regardless of current value, assuming its of a boolean type. 
var foo = !foo; 

!=是一個不平等的運營商,也是用於測試「不等於」運算符,它只是簡單地檢查一下是否有什麼東西等於你正在比較的東西。

Here is a great question about this in a more broad context.

2

在JavaScript !foo是一個布爾值切換,所以如果foo = true;然後!foo被檢查,看看是否FOO等於在這種情況下false相反值,

你的函數:

if (a !b) 
{ 
// something here 
} 

什麼都不做,實際上應該是:

if (!b) 
{ 
// something here 
} 

它測試以查看b是否處於相反狀態。

當您使用!=您正在比較兩個值,看看是否一個不等於另一個。 所以你的函數:

if {a != b) 
{ 
// something here 
} 

檢查是否a不等於b

乾杯。