js中!+1为什么是fasle

!+1 //false
是什么原理

阅读 4.4k
10 个回答

+!都是一元运算符,先+得到1然后!得到false

你可以参考一下运算符优先级问题, 逻辑非将一个本来为true的值非为false

对于!+1,其中的+在此处作为一元正号(+),计算后面操作数的数值,会尝试将其转换成一个数值。如+1 => 1, +'1' => 1逻辑非!仅仅判断其后操作数是否为真值,假值有:null,undefined,false,NaN,0,-0,+0
一元加法的优先级为16,逻辑非的优先级也是16,但是他们的关联性是从右向左,所以此处+1为真值,逻辑非!后则为false

可参考 优先级汇总表

数学中的逻辑非啊。。 不仅是!+1,你随便弄一个字符串都是false。 !0 === true , !1 === false

取反肯定是false了呀!

相当于!(1), 当然是false

!是反取布尔值
!ture==false
!false==true
Boolean(1) = true
Boolean(+1) = true
!true自然就等于false了

取反则是false

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题