我正在使用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');
}
};
});
答案 0 :(得分:1)
Electron可能会在strict mode中运行您的代码。
如果您尝试将值分配给尚未定义的变量,则严格模式将抛出ReferenceError
。这有助于防止您意外声明全局变量。
意外创建全局变量的赋值将以严格模式抛出:
将'use strict';
指令添加到文件或函数的顶部,以使用浏览器中的严格规则评估代码。
您可以通过在循环绑定中添加var
来解决此问题。
for(var key in userData){
// ...
}