1.绑定事件时,需要全部舒勇keydown而不要使用keyup
逻辑写在keydown中的时候,通过阻止默认事件和阻止冒泡能够有效阻止
写在keyup中触发的事件阻止不到冒泡和默认事件,且手指弹起时触发的事件会大概有个300毫秒以内的触发等待时间,不可控,所以其实如果中间你夹杂了Dom操作,那么keyup永远发生在Dom操作之后
2.所有的const,let沿袭变量,实际只是沿袭内存地址,如果需要一个新的不受其他因为影响的新的变量,则只能通过深度复制来实现。否则变量沿袭,藕断丝连的变化会衍生出各种各样的紊乱问题。此处建议使用lodash
3.js功能拆分,相同类似功能写在一起,通过mixin进行功能拆分,使代码阅读维护成本更低。
4.建议通行使用eslint代码规范,明确代码规范要求,特别是命名语义化,变量语义化。