读书笔记:编写可维护的javascript

  1. 使用for-in循环的时候,要使用hasOwnProperty方法进行过滤,除非你想查找原型链上的继承属性
  2. 不应当使用for-in循环进行数组遍历,而只应该对object的属性进行遍历
  3. 每行表达式的结尾要使用分号(;),为了使压缩包能正常工作,还应该为每个js文件的开头加上分号,形如这样的匿名函数定义;(function(){...}());
  4. 变量初始化应该赋值null, 因为typeof这种操作符,对于未初始化的变量返回的是object,而未声明的变量返回undefine
  5. null==undefined的结果是true,而null===undefined的结果是false,因此我们应该使用===,!==
  6. 不要直接在object构造对象上附加属性,而要通过json格式的表示法来初始化一个对象
  7. 函数体中所有变量的声明会被解析器提前到第一句执行语句前,因为js引擎执行函数时会首先扫描作用域内的所有的变量,无论它放在函数体何处
  8. 虽然所有的声明会被提前,而且函数声明优先级高于同名的变量声明,但只要变量在声明的同时进行了初始化,那函数声明就无法再覆盖了
  9. 函数声明不应放在代码块中间或后面,尤其是判断条件的里面,不同的浏览器对此的解释是不同的,但把匿名函数赋值给表达式的声明方式不适用此规则
  10. 不要使用eval,也不要在Function,setTimeout,setInterval等函数中传入字符串
  11. 不要在css中嵌入javascript表达式,这会导致浏览器的重复计算,从而使得系统的整体性能下降,而且这种把js渗入到css中的做法不值得提倡
  12. 不要在javascript中操作对象的css样式。相比上一条,这一条更容易犯错,因为我们经常会在Dom元素中修改style属性
  13. 将css与js分离,同时又能保持相互之间的联系的秘诀就是js只负责操作css的className,而把className的样式定义放在css中
  14. 不要在html中直接嵌入javascript代码片段,而要把javascript代码放入单独的js文件中,使用

你可能感兴趣的:(Javascript)