javascript 中的意外标识符,但我已声明该变量
unexpected identifier in javascript, but I have declared the variable
我已经查看此文件一个小时并尝试了大量排列。
$(document).ready(function() {
var unreadMessages = document.getElementsByClassName("unreadMessage");
var previousEntries;
chrome.storage.sync.get(null, {
var previousEntries;
previousEntries = (data["item"]);
});
console.log(previousEntries);
});
为什么 previousEntries 会抛出 "Uncaught SyntaxError: unexpected identifier"?
这似乎是最直接的任务。是 } () 还是 , 问题?
$(document).ready(function() {
var unreadMessages = document.getElementsByClassName("unreadMessage");
var previousEntries;
// vvvvvvvvvvvvvv
chrome.storage.sync.get(null, function(data){
// var previousEntries; And if you want to access this variable outside,
previousEntries = data["item"]; // don't redefine it here (no "var" keyword).
logValue(); // Now that the variable is set, you can use it
});
// console.log(previousEntries); // Undefined, because it is not set yet.
function logValue(){
console.log(previousEntries); // Now it should work (called from get's callback).
}
});
尚未设置变量的原因是 chrome.storage.sync.get
就像 Ajax 或 setTimeout
一样, 异步 。想象一下这样做:
var myVar;
setTimeout(function(){
myVar = 'Hello world!';
console.log(myVar); // logs "Hello world!" to the console
}, 100);
alert(myVar); // alerts undefined
我已经查看此文件一个小时并尝试了大量排列。
$(document).ready(function() {
var unreadMessages = document.getElementsByClassName("unreadMessage");
var previousEntries;
chrome.storage.sync.get(null, {
var previousEntries;
previousEntries = (data["item"]);
});
console.log(previousEntries);
});
为什么 previousEntries 会抛出 "Uncaught SyntaxError: unexpected identifier"?
这似乎是最直接的任务。是 } () 还是 , 问题?
$(document).ready(function() {
var unreadMessages = document.getElementsByClassName("unreadMessage");
var previousEntries;
// vvvvvvvvvvvvvv
chrome.storage.sync.get(null, function(data){
// var previousEntries; And if you want to access this variable outside,
previousEntries = data["item"]; // don't redefine it here (no "var" keyword).
logValue(); // Now that the variable is set, you can use it
});
// console.log(previousEntries); // Undefined, because it is not set yet.
function logValue(){
console.log(previousEntries); // Now it should work (called from get's callback).
}
});
尚未设置变量的原因是 chrome.storage.sync.get
就像 Ajax 或 setTimeout
一样, 异步 。想象一下这样做:
var myVar;
setTimeout(function(){
myVar = 'Hello world!';
console.log(myVar); // logs "Hello world!" to the console
}, 100);
alert(myVar); // alerts undefined