为什么在这种情况下
if (! x === y) {
console.log ('true');
} else {
console.log ('false');
}
得到false
,因为使用了负运算符。没有负运算符,它也得到false
,因为运算符===
检查它是否用相同的数据类型比较相同的值。那么,为什么在x后面直接加上感叹号,他仍然得到false
,因为它与谎言相矛盾,所以我应该得到真相?
!x
否定x
,然后与y
进行比较。假设x
为真,则!x
为false
。所以除非y
就是false
,否则!x === y
就是false
。读作:负x等于y。
x === y
可能也是false
,因为这两个值不相等。
x !== y
是否定比较运算符,意思是不等于。因此,x === y
是false
,x !== y
是true
。
x !== y
等于!(x === y)
,否定整个结果,而不仅仅是x
。