关于canvas:JavaScript-Uncaught-SyntaxError-Illegal-return-statement

72次阅读

共计 599 个字符,预计需要花费 2 分钟才能阅读完成。

在应用 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 办法!');
}

正文完
 0