您现在的位置: 微信小程序 > 微信小程序开发 > BUG >

微信小程序ES6: for(let i ...) 会报not defined错误

来源:微信小程序 编辑:Yiyongtong.com 发布时间:2018-01-24 09:35热度:
ES6: for(let i ...) 会报not defined错误
微信web开发者工具 v0.13.140600
for (let i=0, i< 10 ; i++){
   ....
}

开启ES6转ES5,开启代码压缩,在手机端预览会报not defined.
解决方案:

let i;
for( i = 0 ,i<10 ,i++){ ... }

或者

for (var i=0 ; i<10 ; i++){ ... } ;
--------
项目审核上线后发现部分页面显示出错,但是在开发工具上正常。后来发现与“ES6转ES5”有关。
以下是部分代码,在开启“ES6转ES5”时,开发工具调试正常,真机预览出错。
let tabIdx = 0;
    for (let i = 0; i < tabs.length; i++) {
      let tab = tabs;
      if (tab.status == status) {
        tabIdx = i;
        break;
      }
    }
修改方案:
  • 开启“ES6转ES5”,红色let改为var,则开发工具和真机预览都正常。
  • 关闭“ES6转ES5”,红色let不改,则开发工具和真机预览都正常。

     
但是个人认为第一种方案用let应该也是可以的,为何出错,是否是开发工具在“ES6转ES5”时有问题?
同 ES6 => ES5 无关 是代码压缩导致的bug