美文网首页
JavaScript Uncaught SyntaxError:

JavaScript Uncaught SyntaxError:

作者: 迷失方向的风 | 来源:发表于2020-06-12 15:41 被阅读0次

    在使用 canvas 时,为了判断 canvas 中的 getContext 方法是否存在,就使用了常用的 if 判断条件来阻止代码继续往下执行:

    let canvas = document.querySelector('#canvas')
    if (!canvas.getContext) {
      return;
    }
    

    但是代码似乎并没有正常的运行,并且浏览器控制台抛出一个错误:

    Uncaught SyntaxError: Illegal return statement
    (未捕获的语法错误:非法的返回语句)
    

    stackoverflow上面提了一个相同的问题。

    并回答给出了原因:return 仅在函数内部有意义

    也就是说 return 只能在函数内部使用才可以:

    function myFun() {
      return '...';
    }
    

    既然 return 只能在函数内部使用,那么我想当 getContext 不存在时,用其他方法终止代码执行就可以了。

    那么什么时候可以终止代码继续执行呢?当程序抛出一个错误的时候似乎就可以终止代码继续执行了:

    throw new Error();
    

    最终,我把开始的 return 改成了 throw new Error,并且抛出了相应的提示信息:

    let canvas = document.querySelector('#canvas')
    if (!canvas.getContext) {
      throw new Error('没有找到 canvas 中 getContext 方法!');
    }
    

    相关文章

      网友评论

          本文标题:JavaScript Uncaught SyntaxError:

          本文链接:https://www.haomeiwen.com/subject/wkngtktx.html