在Javascript中,何时需要在函数外部声明变量?

在Javascript中,何时需要在函数外部声明变量?,javascript,Javascript,此代码仅在函数外部声明“counter”变量时有效: let counter = 0; function counterFunction () { document.getElementById('counterValue').innerHTML = counter++; } 这是一个简单的计数器,当单击按钮时,它会递增一。请参阅对原始问题的评论。。。一些非常重要的参考,例如var和let之间的差异 显然,如果变量是在函数内部声明的,那么它将是“它的本地变量”,并且每次函数返回时它的值都将被丢

此代码仅在函数外部声明“counter”变量时有效:

let counter = 0;
function counterFunction () {
document.getElementById('counterValue').innerHTML = counter++;
}

这是一个简单的计数器,当单击按钮时,它会递增一。

请参阅对原始问题的评论。。。一些非常重要的参考,例如
var
let
之间的差异


显然,如果变量是在函数内部声明的,那么它将是“它的本地变量”,并且每次函数返回时它的值都将被丢弃。

请参阅对原始问题的注释。。。一些非常重要的参考,例如
var
let
之间的差异


显然,如果变量是在函数内部声明的,那么它将是“它的本地”,并且每次函数返回时它的值都将被丢弃。

当您使用let声明变量时,您可以在当前块内声明该变量,块可以是if或循环

例如:

if(条件===true){
设计数器=0;
计数器+++//变量在此处定义
}

计数器++//此处未定义变量
当使用let声明变量时,如果在当前块内声明该变量,则块可以是if或循环

例如:

if(条件===true){
设计数器=0;
计数器+++//变量在此处定义
}

计数器++//此处未定义变量
@basic,此处不重复-OP不询问作用域。几乎从不询问,但这是在函数调用之间保持值状态的最简单方法。Louie-在函数内创建和初始化
计数器
变量时,每次调用函数时,
计数器
设置为零。所以它似乎永远不会更新。将它放在外部可以更新而不被重置。@这里不是重复的basic-OP不询问作用域。几乎从来没有,但这是在函数调用之间保持值状态的最简单方法。Louie-当您在函数内部创建并初始化
计数器
变量时,每次调用该函数时,
计数器将设置为零。所以它似乎永远不会更新。将其放在外部可以在不重置的情况下进行更新。。。。如果“块”是一个返回的函数,当它返回时,值消失了。这里代码想要的是保留的值。。。。如果“块”是一个返回的函数,当它返回时,值消失了。这里代码需要的是一个保留的值。