#问题
在工作中对接 ECS/POS 打印机时,设置文字大小时用了 16 进制的 0
0x00
,为了保险起见给文字大小设置了一个默认值 0x00
,但是在判断时使用了或 ||
进行判断,导致无法进入 0 的情况。所以实际上 16 进制的 0
0x00
在 JavaScript 中是等于 false
的,这就导致了本次的bugjsconst fontSizeMap = { 0: 0x00, // 1×1 (最小) 1: 0x01, // 新增:1.5×1(宽度放大50%,高度不变) 2: 0x11, // 2×1 3: 0x12, // 2×2(或调整为其他值) 4: 0x22, // 最大 } /** * @description: 设置字体大小,数字越大,字体越大 * @param {Array} commands * @param {0|1|2|3|4} size */ export function setFontSize(commands, size) { commands.push(0x1d, 0x21, fontSizeMap[size] || fontSizeMap[1]) }