Javascript 条件赋值和返回赋值背后的逻辑是什么

Javascript 条件赋值和返回赋值背后的逻辑是什么,javascript,Javascript,我不会让你厌烦这个故事,但本质上我有一些模糊的JavaScript需要处理,这一切都很好,但我正在与代码中我从未见过的两种模式作斗争 下面的函数包含这两种模式 var a = function() { if (h = true, T(), DEVELOPMENT && "#y0" == window.location.hash) return game.playRegion

我不会让你厌烦这个故事,但本质上我有一些模糊的JavaScript需要处理,这一切都很好,但我正在与代码中我从未见过的两种模式作斗争

下面的函数包含这两种模式


var a = function() {
            if (h = true,
            T(),
            DEVELOPMENT && "#y0" == window.location.hash)
                return game.playRegion = "eu",
                game.playRoom = "ffa1",
                game.playInvited = true,
                game.myOriginalName = window.location.hash.substr(1),
                void Games.start(game.myOriginalName, true);
            f || (I(),
            Games.updateRegion(false),
            Games.updateType(false),
            C())
        }
  • 首先查看
    if
    语句。我从未见过
    if
    do赋值和调用函数,因此我不理解条件函数的逻辑。如果,我是否可以将语句移到
    上方,或者除非满足完整条件,否则语句不会运行?我可以这样做吗:
  • 返回的
    是怎么回事?返回是一系列语句,那么它实际返回的是什么呢?
    void
    是关于什么的

  • 几乎所有内容都是JavaScript中的表达式

    作业也只是表达<代码>a=b
    计算结果为
    b

    逗号运算符(广泛使用)计算结果为逗号的右侧,因此
    a、b、c
    计算结果为
    c

    void
    接受任何表达式,并始终计算为
    undefined

    因此:

     return a = b, void c();
    
     if(d(), e) {}
    
    等于:

     a = b;
     c();
     return undefined;
    
     d();
     if(e) {}
    

    谢谢你,乔纳斯!我已经使用Actionscript和TypeScript很长一段时间了,我的JavaScript基础知识显然比我想象的更缺乏。谢谢你的时间。。。。没有人会使用逗号运算符/
    void
    。。。因此,您很可能永远不需要这些知识;)
     a = b;
     c();
     return undefined;
    
     d();
     if(e) {}