当我在寻找一些网站的Javascript代码时,我看到了这个
function hrefLeftMenu() {
var x = true;
for (i in info) {
$(".leftmenu ul").append("<li" + (x ? " class='active'" : "") + " onclick='openAnInfo(\"" + i + "\", this);'> - " + info[i].title + "</li>");
x = x??!x;
}
openAnInfo("0", ".lelelesakineyy");
}
它在javascript中的作用是什么?编码器为什么使用这个算子?
感谢。
答案 0 :(得分:12)
它在javascript中的作用是什么?
它会引发语法错误。
> x = x??!x;
SyntaxError: Unexpected token ?
编码器为何使用此运算符?
采取合理的猜测(超出“他们犯了一个错误”)需要更多的背景。说肯定会需要读心:)
答案 1 :(得分:4)
在JavaScript中,这不是有效的代码。但是,序列??!
在C中作为trigraph存在(存在?),代表|
。也许这不是JavaScript代码,或者它从古老的C代码中移植得很差。但即便如此,x = x | x
也很难被称为有用的陈述。
编辑:现在问题中有一点上下文,这种推测可能是错误的。一位朋友建议可能序列x??
是一个拼写错误,后来尝试通过一些中间修改将退格变成一个字符(在输入终端或通过SSH时并不罕见)并且所涉及的行是应该是x = !x
。
答案 2 :(得分:3)
我认为这是一个错误。他们正在生成一个菜单,x
用于将项目设置为活动状态,看起来他们想要默认选择第一个项目。他们希望第一次x
成为真,然后是其他假。它可能应该是类似
x = x?!x:x; // If first time through, then set x = false for the rest
又名
x = false; // Set x = false for the rest
但混乱/混乱的思维导致了过度的恭维。
答案 3 :(得分:1)
这是一个错误吗?
你的意思是?
x= x?x:!x;