wxs语法对多层嵌套的if else简写可以增加支持吗?
发布于 6 年前 作者 qinming 14552 次浏览 来自 官方Issues
 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种,这里只是单纯咨询官方是否考虑支持这种逻辑的语法

6 回复

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

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

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

加个大括号会死啊?

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

分包它不香嘛

回到顶部