为什么javascript不修改我的变量?
下面的javascript函数存在的问题是,它以“非程序员”的身份返回mostpopular的字符串值,因此,尽管它在执行正确的操作时使用了我的console.log命令,但它会返回未修改的mostpopular变量。如果我在顶部修改变量,为什么它不返回修改。。。它几乎就像javascript生成一个实例,它只在测试函数的本地设置中工作(如果我放置console.log语句,它将输出正确的数据)。为什么会这样为什么javascript不修改我的变量?,javascript,Javascript,下面的javascript函数存在的问题是,它以“非程序员”的身份返回mostpopular的字符串值,因此,尽管它在执行正确的操作时使用了我的console.log命令,但它会返回未修改的mostpopular变量。如果我在顶部修改变量,为什么它不返回修改。。。它几乎就像javascript生成一个实例,它只在测试函数的本地设置中工作(如果我放置console.log语句,它将输出正确的数据)。为什么会这样 var mostPopular = "not a programmer"; var t
var mostPopular = "not a programmer";
var totalResults = 0;
function myfunction() {
var listOfLanguages = ["Java", "C", "C++", "PHP", "C#", "Visual Basic", "Python", "Objective-C", "Perl", "Javascript", "Ruby"];
for (var i = 0; i < listOfLanguages.length - 1; i++) {
chrome.history.search({
text: listOfLanguages[i],
maxResults: 100
}, function (search_results) {
var countOfResults = search_results.length;
var langOfResults = listOfLanguages[i - 1];
test(countOfResults, langOfResults);
});
}
console.log(mostPopular);
}
function test(count, lang) {
if (count > totalResults) {
totalResults = count;
mostPopular = lang;
}
}
window.onload = myfunction;
var mostPopular=“不是程序员”;
var totalResults=0;
函数myfunction(){
var listOfLanguages=[“Java”、“C”、“C++”、“PHP”、“C#”、“Visual Basic”、“Python”、“Objective-C”、“Perl”、“Javascript”、“Ruby”];
for(var i=0;i总结果){
totalResults=计数;
大多数人=朗;
}
}
window.onload=myfunction;
如上所述,历史记录搜索是异步的,因此在完成时需要回调执行
其工作原理如下:
var mostPopular = "not a programmer";
var totalResults = 0;
function myfunction() {
var listOfLanguages = ["Java", "C", "C++", "PHP", "C#", "Visual Basic", "Python", "Objective-C", "Perl", "Javascript", "Ruby"];
for (var i = 0; i < listOfLanguages.length - 1; i++) {
chrome.history.search({
text: listOfLanguages[i],
maxResults: 100
}, function (search_results) {
var countOfResults = search_results.length;
var langOfResults = listOfLanguages[i - 1];
test(countOfResults, langOfResults);
console.log(mostPopular);
// The Code will execute whenever the history search results are returned
});
}
// Any code here will be exceuted irrespective of the history search completed or not
}
function test(count, lang) {
if (count > totalResults) {
totalResults = count;
mostPopular = lang;
}
}
window.onload = myfunction;
var mostPopular=“不是程序员”;
var totalResults=0;
函数myfunction(){
var listOfLanguages=[“Java”、“C”、“C++”、“PHP”、“C#”、“Visual Basic”、“Python”、“Objective-C”、“Perl”、“Javascript”、“Ruby”];
for(var i=0;i总结果){
totalResults=计数;
大多数人=朗;
}
}
window.onload=myfunction;
您不希望循环使用i
;您只需要i
chrome.history.search
是异步的,您需要了解Javascript中的回调函数