微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

当我没有声明 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 错误

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。