canvas绘图前必须调用getcontext('2d')获取上下文,否则绘图方法报错;动态更新需clearrect清空再重绘;高频动画应使用requestanimationframe并适配devicepixelratio防模糊。

Canvas 绘图前必须调用 getContext('2d')
直接在 HTML 里写 <canvas></canvas> 标签只是声明一个画布容器,它本身不提供绘图能力。必须通过 JavaScript 获取上下文对象,否则所有绘图方法(如 fillRect、strokeLine)都会报 TypeError: Cannot read property 'xxx' of null。
常见错误是 DOM 尚未加载完成就执行获取操作,导致 getContext 返回 null:
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d'); // 如果 canvas 为 null,这里就崩了
- 确保脚本在











