收藏
回答

wxs语法对多层嵌套的if else简写可以增加支持吗?

 var commonText = function (e, t, a{
    var n = "";
    if (1 == t) {
      n = 5
    } else if (2 == t)
        if (a)
            for (var i = 0; i < a.length; i++) {
                var o = a[i];
                if (o == 2) {
                    n += o;
                    break
                }
            }
        else n = 4;
    else 3 == t && (n = 66);
    return n
  }

这段代码 在wxs中执行 会报错  SyntaxError: Unexpected token 'else'
在浏览器是支持这种写法的,运行正常
这个代码是压缩过的,压缩前的代码带括号是没问题的,主要是包大小不够只能对项目代码进行压缩。

不用讨论用什么方式解决!!!
不用讨论用什么方式解决!!!
不用讨论用什么方式解决!!!
解决的方式有N种,这里只是单纯咨询官方是否考虑支持这种逻辑的语法

最后一次编辑于  2021-04-23
回答关注问题邀请回答
收藏

6 个回答

  • TTc
    TTc
    2021-04-23

    你都报错了那肯定是不支持的。纠结什么呢?是跟朋友打赌呢吗还是咋的。

    2021-04-23
    有用 1
    回复 3
  • 耿霄
    耿霄
    2021-04-23

    我觉得wxs的设计就不是处理复杂逻辑,复杂的逻辑应该在js内处理,是可以处理简单的判断条件

    2021-04-23
    有用
    回复 1
    • 2021-04-23
      这个不算复杂把、只是语法组合特殊
      2021-04-23
      回复
  • Hhw
    Hhw
    2021-04-23

    分包它不香嘛

    2021-04-23
    有用
    回复 1
    • 发表于移动端
      2021-04-23
      分了,项目太大,不够用
      2021-04-23
      回复
  • 卢霄霄
    卢霄霄
    2021-04-23

    看来这阉割版的js解析得有问题啊~

    2021-04-23
    有用
    回复 1
    • 2021-04-23
      不支持的东西有很多。。
      2021-04-23
      回复
  • Listen
    Listen
    2021-04-23

    加个大括号会死啊?

    2021-04-23
    有用
    回复 15
    • 2021-04-23
      不是说的很明白么?这个格式是 压缩之后生成的代码。不压缩代码 包体积不够用
      2021-04-23
      回复
    • 2021-04-23
      只是单纯咨询官方能不能支持
      2021-04-23
      回复
    • Listen
      Listen
      2021-04-23回复
      那你就用switch case
      2021-04-23
      回复
    • 2021-04-23回复Listen
      哥,别抬了,就是遇到这么个问题,然后单纯咨询一下官方能不能支持。
      2021-04-23
      回复
    • 浪花骑士
      浪花骑士
      2021-04-23回复
      压缩的时候配置好压缩选项,保证花括号不会被移除.
      另,代码体积不够首先考虑用线上图片资源地址+分包.
      毕竟你从代码压缩这抠,也抠不了多少
      2021-04-23
      回复
    查看更多(10)
  • 2021-04-23

    可以换其他方式就不会有这个问题(比如语法换一种,加括号,或者是 for改成map 或者 forEach 等等),所以这里只单纯看语法哈,不用看为什么 这么写逻辑... 这个逻辑精简过。

    2021-04-23
    有用
    回复
登录 后发表内容