在使用 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 方法!');
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。