Javascript ReferenceError:if语句后未定义变量

Javascript ReferenceError:if语句后未定义变量,javascript,Javascript,我使用if语句设置页面,如下所示: loadMaintenances (query = {}, status) { if(status === 'changed'){ let page = 1 } else{ let page = this.page } console.log(page); }

我使用if语句设置页面,如下所示:

 loadMaintenances (query = {}, status) {
             if(status === 'changed'){
                let page = 1
             }
             else{
                let page = this.page
             }

             console.log(page);
}
   loadMaintenances (query = {}, status) {
              let page = this.page
             console.log(page);
}
然而,通过上面的代码,我得到了错误

[Vue warn]: Error in mounted hook: "ReferenceError: page is not defined"
但当我在if语句之外删除它时,如下所示:

 loadMaintenances (query = {}, status) {
             if(status === 'changed'){
                let page = 1
             }
             else{
                let page = this.page
             }

             console.log(page);
}
   loadMaintenances (query = {}, status) {
              let page = this.page
             console.log(page);
}

它起作用了。我的if语句有问题吗?

这确实是一个问题,每个数据标识符都有自己的作用域规则,通常“let”有块作用域,因此在块内使用“let”定义的变量仅在块内是局部变量,因此当您尝试在块外打印时,它显示为未定义

一个简单的解决方案是在if块之外声明变量页

loadMaintenances (query = {}, status) {
             let page;
             if(status === 'changed'){
                page = 1
             }
             else{
                page = this.page
             }

             console.log(page);
}

这确实是一个问题,每个数据标识符都有自己的作用域规则,通常“let”有块作用域,因此在块内使用“let”定义的变量仅在块内是局部变量,因此,当您尝试在块外打印它时,它会显示为未定义

一个简单的解决方案是在if块之外声明变量页

loadMaintenances (query = {}, status) {
             let page;
             if(status === 'changed'){
                page = 1
             }
             else{
                page = this.page
             }

             console.log(page);
}