Javascript 什么是;FormData是在声明之前使用的,这对于常量变量是非法的;意思是

Javascript 什么是;FormData是在声明之前使用的,这对于常量变量是非法的;意思是,javascript,Javascript,我不明白为什么在我的Vue组件中出现“FormData在声明之前就被使用了,这对于常量变量是非法的”错误 <script> export default { ... methods: { async sendForm(){ const FormData = new FormData(); // error occurs here await this.$axios.post('/upload', FormData).

我不明白为什么在我的Vue组件中出现“FormData在声明之前就被使用了,这对于常量变量是非法的”错误

<script>
    export default {
    ...
    methods: {
      async sendForm(){
        const FormData = new FormData(); // error occurs here
        await this.$axios.post('/upload', FormData).then(response => {
                console.log(response)
            }).catch(error => {console.log(error)})
      }

导出默认值{
...
方法:{
异步sendForm(){
const FormData=new FormData();//此处发生错误
等待此消息。$axios.post('/upload',FormData)。然后(response=>{
console.log(响应)
}).catch(错误=>{console.log(错误)})
}

我做错了什么?我已经在组件的其他地方搜索了
FormData
,但什么都没有。这是它唯一的构造时间。

既然您声明了一个局部变量
FormData
,那么这个块中引用
FormData
的任何代码都引用了它。这包括右侧的f行:它指的是局部变量,而不是你想的任何其他变量。因此,你试图通过
new
对完全相同的变量进行初始化,这将需要在初始化变量之前使用该变量,这是不允许的

修复程序很可能只是使用不同的变量名

const example = new FormData();

当系统尝试执行
new FormData()
时,它将搜索仅作用于当前块的
FormData
的定义(因为您使用的是
const
)。由于它没有在该块中的任何位置声明,因此它可以找到的唯一引用就是您正试图声明的变量,并用
FormData
的新实例填充该变量。因此,它表示您正试图在声明它之前使用
FormData
(表达式的右侧)(表达式的左侧)。@ScottMarcus谢谢,所以对变量进行简单的名称更改(如NIcholas的答案)就可以解决问题!上帝啊,我真希望这些错误有意义!谢谢你的帮助,我将const的名称更改为仅数据形式,效果很好:)