> 文章列表 > JS规范及常见问题

JS规范及常见问题

JS规范及常见问题

  1. 数字和字符串不能混合使用。

    1. 做加减法可能出错 "1"+1 == "11"
    2. 做判断可能出错 "2"<"11"===false
  2. 几种for循环的使用:
    1. for(var i=0;i<list.length;i++): es5,需要拿到下标时、遍历非标准数组如FileList时
    2. for(var i in obj): es5,遍历对象时使用,不要在遍历数组时使用(性能更差、这里的i是字符串)
    3. for(var i of list): es6,遍历数组时使用,不需要拿到下标时
  3. 箭头函数如果要返回空对象,需要写成 () => ({}),否则{}会被当成函数体

  4. 写拖动操作时一般监听要拖动元素的mousedown、监听document的mousemove、mouseup,这样可以避免鼠标在移出元素或窗口之后监听不到mouseup事件的问题。通常是这样写的:
      function mousedown() {document.addEventListner('mousemove', mousemove)document.addEventListner('mouseup', mouseup)}function mouseup() {document.removeEventListner('mousemove', mousemove)document.removeEventListner('mouseup', mouseup)}function mousemove() {// do something}div.addEventListener('mousedown', mousedown)