2017-07-29 92 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

干杯。