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