gpt4 book ai didi

javascript - !a!=!!b^!!-!a||!+!a|!c 可以返回 1 以外的任何值吗?

转载 作者:行者123 更新时间:2023-12-02 23:25:56 25 4
gpt4 key购买 nike

我正在和某人玩 Javascript 游戏,我们很高兴制作可笑和荒谬的表达式,以使我们的输入得到特定的输出。

这个小可爱

!a!=!!b^!!-!a||!+!a|!c

似乎总是返回1。我试图推理出来,但在失去所有 ! 的踪迹后我放弃了。

是否存在不返回 1abc 值?如果不是,为什么它总是返回1

最佳答案

简短的回答,是的。 a = false, b = false, c = true 是一个反例,因为您的方程与 (!!a || !!b || !c) 相同.

长答案:

!a!=!!b^!!-!a||!+!a|!c

(((!a) != (!!b)) ^ (!!(-!a))) || ((!+!a)|!c)

减少为

((Boolean(a) == Boolean(b)) ^ (!a)) || (Boolean(a) | !c)

因此所有 abc 都仅作为 true/falsey 值进行处理,并且结果必须是 10,因为 |^ 都将 bool 值强制转换为数字。

很明显(通过检查||的右侧)如果a为真或c为假,你会得到1

如果a为假而c为真,则有两种可能性,

  1. b 为真,在这种情况下 ^ 子句为 1,因此 || 的右侧为从未达到。
  2. b 为 false,在这种情况下 ^ 子句为 0,因此 || 的右侧主导产生0

关于javascript - !a!=!!b^!!-!a||!+!a|!c 可以返回 1 以外的任何值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7045262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com