Javascript 得到一个错误;未捕获的语法错误:标识符';变量名称';已被宣布为;当再次动态删除并重新添加同一脚本时

Javascript 得到一个错误;未捕获的语法错误:标识符';变量名称';已被宣布为;当再次动态删除并重新添加同一脚本时,javascript,html,Javascript,Html,问题是,我动态地更改了包含脚本标记的'div'内容,所以当我想重新添加并执行之前删除的同一个脚本时,我得到 未捕获的语法错误:已声明标识符“var name” 错误,因为已在重新执行的脚本中声明了变量 例如,当删除、重新添加并重新执行相同的脚本标记时,这些变量会给我相同的错误: let var1 = "111"; let var2= "222"; 我曾尝试使用var进行声明,并使用delete运算符删除它们,但没有成功,我想使用let来声明变量 编辑: 我有多个脚本,每个脚本调用函数,有时从另

问题是,我动态地更改了包含脚本标记的'div'内容,所以当我想重新添加并执行之前删除的同一个脚本时,我得到

未捕获的语法错误:已声明标识符“var name”

错误,因为已在重新执行的脚本中声明了变量

例如,当删除、重新添加并重新执行相同的脚本标记时,这些变量会给我相同的错误:

let var1 = "111";
let var2= "222";
我曾尝试使用
var
进行声明,并使用
delete
运算符删除它们,但没有成功,我想使用
let
来声明变量

编辑: 我有多个脚本,每个脚本调用函数,有时从另一个脚本启动变量。

Chris G是对的(尽管我不知道为什么人们仍然使用它来回答问题)

将脚本包装到函数中,变量将立即过期

<script>
    (function(){
        // let [your variables here]
        // your script here
    })();
</script>

(功能(){
//让[你的变量在这里]
//你的剧本在这里
})();
克里斯·G是对的(尽管我不知道为什么人们仍然使用答案)

将脚本包装到函数中,变量将立即过期

<script>
    (function(){
        // let [your variables here]
        // your script here
    })();
</script>

(功能(){
//让[你的变量在这里]
//你的剧本在这里
})();

答案如@SUM1和@Chris G所说,但我起初没有阐明整个问题

我需要对整个脚本使用
自调用
函数,但还需要
返回
一个对象,该对象包含将在另一个脚本中使用的函数,以防止
未定义
不是函数
错误

换句话说,我需要遵循
模块模式
。有关更多信息,请阅读以下文章:

1-


2-

答案如@SUM1和@Chris G所说,但我起初没有阐明整个问题

我需要对整个脚本使用
自调用
函数,但还需要
返回
一个对象,该对象包含将在另一个脚本中使用的函数,以防止
未定义
不是函数
错误

换句话说,我需要遵循
模块模式
。有关更多信息,请阅读以下文章:

1-


2-

将脚本包装在
(function(){
})()中
@ChrisG我是javascript新手,所以我想知道用这种方式编写脚本是否合适?这是否回答了您的问题?谢谢,但事实上不是,在我问问题之前我已经看过了,把脚本包装在
(function(){
})中()
@ChrisG我是javascript新手,所以我想知道用这种方式编写脚本是否合适?这是否回答了您的问题?谢谢,但事实上不是,我在问我的问题之前已经看过了谢谢,但我对javascript是新手,所以我想知道,用这种方式写脚本好吗?我试过了,这种方法为我提供了“未定义”的错误,因为在“自调用函数”中已经声明的函数和变量只能在同一个.js文件中看到。如果您想在函数之外访问某些内容,请将其保留在函数之外。我不知道你的精确脚本是什么(那会很有帮助)。在函数中保留您想要释放的任何变量,无论是匿名(
(function(){
)还是命名和调用(
function myFunction(){…};myFunction();
)我的想法是我有3个HTML文件(login、register和todo),它们根据用户行为动态加载。每个文件都包含3个脚本(模型、控制器和视图)。例如,当我加载“todo”然后“login”然后返回到“todo”时,问题就出现了。在“todo_视图”和“todo_模型”中已经声明的变量给出了问题中描述的错误。当尝试使用您建议的方式时,“todo_控制器”无法访问在“todo_模型”中声明的变量和函数。下面是GitHub repo link if可以提供完整视图,但您需要导航到tea branch以查看最新的UpdateAnks,但我对javascript不熟悉,所以我想知道,以这种方式编写脚本好吗?我尝试过,这种方法给了我在“自调用函数”中声明的函数和变量“未定义”错误只有在同一个.js文件中才能看到。如果您希望在函数之外访问某些内容,请将其置于函数之外。我不知道您的确切脚本是什么(这会很有帮助)。请将您希望在函数内部释放的任何变量保留在函数中,无论是匿名(
(function(){/code>)还是命名和调用的(
function myFunction(){…};myFunction();
)我的想法是我有3个HTML文件(登录、注册和todo),它们是根据用户行为动态加载的。每个文件都包含3个脚本(模型、控制器和视图)。例如,当我加载“todo”然后“login”然后返回到“todo”时,问题就出现了。在“todo_视图”和“todo_模型”中已经声明的变量给出了问题中描述的错误。当尝试使用您建议的方式时,“todo_控制器”无法访问在“todo_模型”中声明的变量和函数。下面是GitHub repo链接可以提供完整视图,但您需要导航到tea分支以查看最新更新