obj JavaScript键中的Electron.io键未定义?

时间:2016-03-06 00:14:05

标签: javascript electron

我正在使用Electron.io开发一个桌面应用程序。我有一些来自firebase数据库的数据,我试图将某些用户信息与key in obj匹配,但它会在电子控制台中抛出错误。我在普通网页上粘贴了相同的确切代码,它返回正常。那么电子桌面开发是什么导致错误Uncaught ReferenceError: key is not defined这是我的代码:

JS:

firebase.on('value', function(dataSnapshot) {
    console.log('dataSnapshot: ',dataSnapshot.val());
    var userData = dataSnapshot.val();

    //see if user and password match
    for(key in userData){
      if(JSON.stringify(userData[key].user) === JSON.stringify(payload.data.userName) && JSON.stringify(userData[key].password) === JSON.stringify(payload.data.password)){
        console.log('true');
      }
    };

});

1 个答案:

答案 0 :(得分:1)

Electron可能会在strict mode中运行您的代码。

如果您尝试将值分配给尚未定义的变量,则严格模式将抛出ReferenceError。这有助于防止您意外声明全局变量。

  

意外创建全局变量的赋值将以严格模式抛出:

'use strict';指令添加到文件或函数的顶部,以使用浏览器中的严格规则评估代码。

您可以通过在循环绑定中添加var来解决此问题。

for(var key in userData){
  // ...
}