ctx 변수가 CanvasRenderingContext2D 또는 null 값을 반환하기 때문에 저렇게 식을 쓰는거 맞아?

근데 왜 ||가 아니라 | 비트연산자인지, 이거 외에도 타입 명시할때 |를 쓰는 코드가 있던데 왜 이런지 모르겠어

CanvasRenderingContext2D는 boolean 값이라 그런가?