var sum = 2;
function addFive() {
var sum = sum + 5;
console.log(sum); //why not 7
}
addFive();Run Code Online (Sandbox Code Playgroud)
为什么返回NaN而不是7?
为了使事情更清楚,您的代码基本上是这样读取的:
var sum = 2;
function addFive() {
var sum; // implicitly equal to undefined
sum = sum + 5; // sum = undefined + 5 = NaN
console.log(sum); // NaN
}
addFive();Run Code Online (Sandbox Code Playgroud)
如您所见,您正在重新声明,sum并将其设置为undefined。所以,当你尝试,并添加2到undefined您会得到NaN(非数字)。
相反,您可以sum通过不在函数中重新定义外部变量来引用外部变量,而只需重新分配其值即可:
var sum = 2;
function addFive() {
sum = sum + 5; // sum = 2 + 5 = 7
console.log(sum); // 7
}
addFive();Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |