javascript
  • syntax
  • 2012-08-30 75 views 1 likes 
    1

    当我在寻找一些网站的Javascript代码,我看到这个什么是??! 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

    奇怪,我从来没有见过这种,似乎像一些运营商的组合 –

    +0

    有点困惑,为什么这有四个upvotes。这个问题需要更多的信息。这是你看到的确切代码吗?你多久见过一次?你能提供一些周围的代码吗? – jackwanders

    +0

    你确定吗?我从来没有看到过这样的语法! – Xmindz

    回答

    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 
    

    反而导致过度complification混乱/泥泞的思考。

    +0

    谢谢你的解释。 – totten

    12

    它在JavaScript中做了什么?

    它会引发语法错误。

    > x = x??!x; 
    SyntaxError: Unexpected token ? 
    

    为什么编码器的使用该运营商?

    以合理的猜测(超出“他们犯了错误”)将需要更多的上下文。肯定地说,需要读心术:)

    +0

    为什么我没有检查它是否有效。对此感谢和遗憾。 – totten

    +0

    我更新了问题。 – totten

    4

    在JavaScript中,这不是有效的代码。但是,序列??!在C中存在(存在?)作为trigraph,代表|。也许这不是JavaScript代码,或者是从古代C代码中移植得不好。但即使如此,x = x | x几乎不能称为有用的声明。

    编辑:在现在的问题有点背景下,这种猜测可能是错误的。一位朋友建议说,序列x??可能是一个拼写错误,并且随后尝试通过某些中间变形(在终端中输入或通过SSH输入时不常见)将backspace转换为字符,并且该线路应该是x = !x

    +1

    有趣的想法。 – asawyer

    1

    这是错误的?

    您的意思是?

    x= x?x:!x; 
    
    +0

    我将所有代码复制到问题中。 – totten

    +2

    换句话说,'x = true'。 – Joey

    +0

    @Joey Yep!总是! :) – Xmindz

    相关问题