什么事!这在javascript中是什么意思?

什么事!这在javascript中是什么意思?,javascript,this,Javascript,This,与此函数一样,将todo项的“完成”状态从true切换为false并返回: toggle: function() { this.save({ completed: !this.get('completed') }); } 假设你知道表示否定(转换为布尔值并返回相反的值),您发布的内容与 !(this.get('completed')) 看 请注意,位于之前在那张桌子上。这就是为什么与整个表达式相关联,与前面的get()相关联起作用。另一个答案是技术上很好的一般答案,绝对正

与此函数一样,将todo项的“完成”状态从true切换为false并返回:

toggle: function() {
  this.save({
    completed: !this.get('completed') 
  });
}

假设你知道
表示否定(转换为布尔值并返回相反的值),您发布的内容与

!(this.get('completed')) 


请注意,
位于
之前在那张桌子上。这就是为什么
与整个表达式相关联,
前面的
get()
相关联起作用。

另一个答案是技术上很好的一般答案,绝对正确


对于您的特定情况,在当前(
this
)对象中有一个名为
get()
的方法,它返回一个布尔值。因此,对来自
get()
的布尔返回值使用not运算符(
)将其反转,因此如果
get()
返回
true
,表达式将变为
false
(以此类推)。这意味着您正在传递一个与从
get()
返回的值相反的值,作为传递到
save()
调用的对象的
completed
属性的值!(this.get('completed')
!false===true
!true===false
,因此切换。这是“逻辑not”运算符。它只需获取this.get('completed')
并反转其值。因此,如果它是真的,它将返回false,反之亦然。我感觉问题更多的是关于什么
!这意味着,这不是代码所做的。不是关于什么
是的,我可能是错的ooops,从OP的评论来看,他们似乎对togglingSure感到困惑,但如果他们问的是那个特定的问题,我想澄清一下发生了什么也可能会有所帮助。因为“显然”它不是“
!此
“,正如先前的答复所指出的那样。我并不是说另一个答案是错误的,我只是添加了更多有针对性的信息,因为我怀疑他们有点新手。干杯。这与mVChr的评论相结合,'!false==正确且正确!true===false,因此,切换。'使其单击,谢谢@YPCrumble是关于
的问题运算符或关于
!这
?主要是你的表演!运算符处理整个表达式,而不仅仅是“this”。