求大佬解答一下这个运算规则
javascript吧
全部回复
仅看楼主
level 3
汐风丶💖 楼主
查了好几天了,初步定位运算符优先级问题
但是还是感觉怪怪的
求大佬解答
2022年08月25日 23点08分 1
level 3
汐风丶💖 楼主
真的求解答
2022年08月26日 00点08分 2
level 13
先说意见:复杂的运算用括号明确语义,不然拆开写。
而且这么写有些多余。
自己去查查运算符优先级表就能懂了
优先级越高就越被优先识别
三元运算符>比较运算符>短路或运算符
三元运算符总是识别最长的表达式,而后面一整串都可以识别为表达式,一直算到最后一个三元运算符,条件为真,取'3'。
2022年08月30日 00点08分 7
为什么第一条运算为2呢
2022年09月01日 08点09分
第一条是因为 空数组 和 空字符串 的真假判断不同,空数组的判定为真,导致第二个三元的判定为真所以结果是 '2'。
2022年09月01日 18点09分
而 空字符串 的判定为假,所以第二条直到第三个三元才判定为真所以是'3'
2022年09月01日 18点09分
@BSPR0002 谢谢大佬的指导,悟了
2022年09月02日 08点09分
level 8
现实中很难看到这么屎的代码。
2022年09月01日 10点09分 8
有些是为了避开一些代码ruler ,所以大神给我解答一下为什么
2022年09月01日 12点09分
level 3
汐风丶💖 楼主
@BSPR0002 先求了jd == "QD" false的话跳转到0x3971ef511d25的指令,创建数组,接着就是对象的布尔一定是ture,跳到了0x3971ef511d30的指令,加载'2'这个字符串到累加器,跳转到0x3971ef511d45的指令,把累加器的值存在寄存器中,返回
2022年09月02日 16点09分 9
level 4
业务代码敢这么写 第二天人直接滚蛋
2022年09月03日 00点09分 10
……我求求你们了,我发个帖我还得把代码截图贴出来给你们审核一下啊?
2022年09月04日 07点09分
1