收藏
回答

1.5.0库开始要求强制类型转换了?

问题模块
API和组件


之前版本拼接字符串和int,直接用+号连接就能拼接成功,1.5.0开始貌似需要强制转换成字符串才能拼接成功,否则程序就直接跳出,跑不下去了。这么大的改动不说一声直接就改了???

最后一次编辑于  2017-08-22
回答关注问题邀请回答
收藏

11 个回答

  • 温暖如夏
    温暖如夏
    2017-08-24

    排查的结果是微信版本升级到6.5.12以上的版本就不可以了,6.5.12以下的版本就是可以的,需要声明变量

    2017-08-24
    赞同
    回复
  • 晨
    2017-08-24

    和这个问题应该无关,需要在排查一下是不是和1.5.0的其他改动有关。

    2017-08-24
    赞同
    回复
  • 温暖如夏
    温暖如夏
    2017-08-24

    可是我们以前上线的有些用户打不开小程序了,因为有些用的第三方的库是没有声明的,跟这个基础库有关系么?

    2017-08-24
    赞同
    回复
  • 晨
    2017-08-23

    开启了ES6转ES5 会报这个错误,不开启应该不报错的。

    2017-08-23
    赞同
    回复
  • 温暖如夏
    温暖如夏
    2017-08-23

    我是开启了ES6转ES5,还是报错:ReferenceError: result is not defined,结果是3des里面的加密库,以前没有声明的变量全部报错了,重新声明就可以了

    2017-08-23
    赞同
    回复
  • 晨
    2017-08-22

    你好,如果在工具中开启了ES6转ES5,会启用严格模式,严格模式下不允许显式定义全局变量。这个特性在0.10.101000开始应该一直都有,和基础库版本无关。

    2017-08-22
    赞同
    回复
  • 小强
    小强
    2017-08-22

    问题原因找到了,是忘了声明”result”。不过也是奇怪,之前一直没声明也能用,1.5.0突然就不行了.....

    2017-08-22
    赞同
    回复
  • 小强
    小强
    2017-08-22

    刚刚给所有int再加了一层toString,发现还是不行,到相同位置又跳出了.....所以貌似还不是变量的类型问题

    2017-08-22
    赞同
    回复
  • 小强
    小强
    2017-08-22
    // 对比时间戳,得出时差
    function getDateDiff(dateTimeStamp){
        var minute = 1000 * 60;
        var hour = minute * 60;
        var day = hour * 24;
        var halfamonth = day * 15;
        var month = day * 30;
        var now = new Date().getTime();
        var diffValue = now - dateTimeStamp;
        if(diffValue < 0){return;}
        var monthC =diffValue/month;
        var weekC =diffValue/(7*day);
        var dayC =diffValue/day;
        var hourC =diffValue/hour;
        var minC =diffValue/minute;
        if(monthC>=1){
        result = "" + parseInt(monthC) + "月前";
        }
        else if(weekC>=1){
        result = "" + parseInt(weekC) + "周前";
        }
        else if(dayC>=1){
        result = "" + parseInt(dayC) +"天前";
        }
        else if(hourC>=1){
        result = "" + parseInt(hourC) +"小时前";
        }
        else if(minC>=1){
        result = "" + parseInt(minC) +"分钟前";
        }else{
        result = "刚刚";
      }
        return result;
    }

    1.4.2库能一直执行到 return,返回结果值。1.5.0的库,这段代码执行到

    result = "" + parseInt(dayC) +"天前";

    这行之后就跳出了。

    2017-08-22
    赞同
    回复
  • 温暖如夏
    温暖如夏
    2017-08-22

    我也发现了,以前的代码没问题,今天更新了版本,1.5.0的版本直接报错,拼接的变量找不到,把基础版本变更为1.5.0以下的就可以了

    2017-08-22
    赞同
    回复

正在加载...