代码之家  ›  专栏  ›  技术社区  ›  puk

在catch子句中声明e变量的正确方法是什么

  •  0
  • puk  · 技术社区  · 3 年前

    当我不声明变量时 catch 用于存储错误,JSHint给了我以下错误

    function foo (){
        try{
            let a = 0/0;
        } catch (e){
            console.log (e);
        }
    }
    
    error| 'e' is not defined
    

    当我定义它时,我会得到这个错误

    function foo (){
        let e;
    
        try{
            let a = 0/0;
        } catch (e){
            console.log (e);
        }
    }
    
    error| Value of 'e' may be overwritten in IE8 and earlier
    

    是否有最佳申报方式 e ? 如果没有,我该如何抑制此JSHint错误?

    0 回复  |  直到 3 年前
        1
  •  2
  •   geoffdavis    3 年前

    这个 exception_var 如所述 MDN try...catch 文档不需要初始化。此变量的处理方式类似于函数的参数:中的定义 catch(e) 创建引用。

    JSHint是正确的,因为初始化 例外_var (许多开发人员将其用作 e / err )try/catch语句之外可能会导致不必要的行为。