小程序
小游戏
企业微信
微信支付
扫描小程序码分享
之前版本拼接字符串和int,直接用+号连接就能拼接成功,1.5.0开始貌似需要强制转换成字符串才能拼接成功,否则程序就直接跳出,跑不下去了。这么大的改动不说一声直接就改了???
11 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
和这个问题应该无关,需要在排查一下是不是和1.5.0的其他改动有关。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
开启了ES6转ES5 会报这个错误,不开启应该不报错的。
你好,如果在工具中开启了ES6转ES5,会启用严格模式,严格模式下不允许显式定义全局变量。这个特性在0.10.101000开始应该一直都有,和基础库版本无关。
这个属于JS语法,不会有变化。你的具体代码是?
排查的结果是微信版本升级到6.5.12以上的版本就不可以了,6.5.12以下的版本就是可以的,需要声明变量
可是我们以前上线的有些用户打不开小程序了,因为有些用的第三方的库是没有声明的,跟这个基础库有关系么?
我是开启了ES6转ES5,还是报错:ReferenceError: result is not defined,结果是3des里面的加密库,以前没有声明的变量全部报错了,重新声明就可以了
问题原因找到了,是忘了声明”result”。不过也是奇怪,之前一直没声明也能用,1.5.0突然就不行了.....
刚刚给所有int再加了一层toString,发现还是不行,到相同位置又跳出了.....所以貌似还不是变量的类型问题
// 对比时间戳,得出时差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) +"天前";这行之后就跳出了。
// 对比时间戳,得出时差
function
getDateDiff(dateTimeStamp){
var
minute = 1000 * 60;
hour = minute * 60;
day = hour * 24;
halfamonth = day * 15;
month = day * 30;
now =
new
Date().getTime();
diffValue = now - dateTimeStamp;
if
(diffValue < 0){
return
;}
monthC =diffValue/month;
weekC =diffValue/(7*day);
dayC =diffValue/day;
hourC =diffValue/hour;
minC =diffValue/minute;
(monthC>=1){
result =
""
+ parseInt(monthC) +
"月前"
;
}
else
(weekC>=1){
+ parseInt(weekC) +
"周前"
(dayC>=1){
+ parseInt(dayC) +
"天前"
(hourC>=1){
+ parseInt(hourC) +
"小时前"
(minC>=1){
+ parseInt(minC) +
"分钟前"
{
"刚刚"
result;
1.4.2库能一直执行到 return,返回结果值。1.5.0的库,这段代码执行到
这行之后就跳出了。
正在加载...
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
和这个问题应该无关,需要在排查一下是不是和1.5.0的其他改动有关。
开启了ES6转ES5 会报这个错误,不开启应该不报错的。
你好,如果在工具中开启了ES6转ES5,会启用严格模式,严格模式下不允许显式定义全局变量。这个特性在0.10.101000开始应该一直都有,和基础库版本无关。
这个属于JS语法,不会有变化。你的具体代码是?
排查的结果是微信版本升级到6.5.12以上的版本就不可以了,6.5.12以下的版本就是可以的,需要声明变量
可是我们以前上线的有些用户打不开小程序了,因为有些用的第三方的库是没有声明的,跟这个基础库有关系么?
我是开启了ES6转ES5,还是报错:ReferenceError: result is not defined,结果是3des里面的加密库,以前没有声明的变量全部报错了,重新声明就可以了
问题原因找到了,是忘了声明”result”。不过也是奇怪,之前一直没声明也能用,1.5.0突然就不行了.....
刚刚给所有int再加了一层toString,发现还是不行,到相同位置又跳出了.....所以貌似还不是变量的类型问题