有人可以向我解释为什么a不是8.我知道代码运行后a = 7,但是如何让函数返回以使它为8? Java Script的新功能。
有人可以向我解释一下吗?
var a = 5;
function foo(a)
{
a++;
}
a += 2;
console.log(a);
答案 0 :(得分:2)
首先,您创建了一个函数,但是您没有调用它。它不会以你创建它的方式自动运行。
正如有人提到的,你有2个不同的' a'变量。一个存在于函数内部,一个存在于外部。认为它们是两个完全不同的东西。
var a = 5;
function foo(a)
{
a++; //This adds just 1 to a. If you want to add more, you can do a = a + 2; or whatever
return a; //Whenever you call this function, it will return a
}
a = foo(a); //Take the current a (which is 5) pass it to foo(). Assign the resulting returned value to a.
a += 2; //add 2 to a.
console.log(a);
该代码将产生a = 8.从5开始,加1,加2。
工作jsfiddle:http://jsfiddle.net/revg819p/1/
答案 1 :(得分:0)
您的函数foo(a)
未执行。并且您的代码在语义上等于:
var a = 5;
a += 2;
console.log(a);
function foo(a) {
a++;
}
此外,调用函数foo(a)
不会改变全局变量a
的状态