JavaScript语言精粹-毒瘤、糟粕(应对)

毒瘤

  1. 不使用全局变量
  2. 使用块级作用域,不var
  3. return与返回值要位于同一行,否则当自动插入分号后会返回undefined
  4. 当对象的属性名与js保留字相同时,无法使用点语法,使用括号表示法
  5. js字符是16位的,Unicode将一对字符视为一个单一的字符,而js将其认为是两个不同的字符
  6. 注意typeof对于null和正则返回'object'
  7. parseInt在遇到非数字时会停止,注意parseInt('16')和parseInt('16 jk')均返回16
  8. +运算符会根据参数来判断是数值计算还是字符串拼接
  9. NaN不是数字并且它不等于自身,typeof对于其返回'number',判断值是否为数值类型可用typeof value === 'number' && isFinite(value)
  10. js的数组是伪数组,不需设置维度、不会越界,但性能不如真正的数组,typeof不能区别数组与对象,可用instanceof区别
  11. js的假值:0、NaN、''、false、null、undefined
  12. hasOwnProperty是一个function而不是运算符,不会查询原型链上的属性,可以被替换,不要使用obj.hasOwnProperty=null之类
  13. js的默认对象不是空对象,当原型链可能对我们产生影响时,使用Object.create(null)创建纯净的对象

糟粕

  1. 不使用==,而是===;不使用!=,而是!==
  2. 不使用with语句
  3. 不使用eval语句
  4. 适当地使用continue语句能提高可读性,但性能不如重构去除continue的代码
  5. swith中的每个case下注意break,小心穿越到下个case
  6. if语句可以接受单行语句,但此时还是应加上花括号
  7. ++、--不够严谨,使得代码过于拥挤,不使用的话代码可以变的更整洁
  8. 使用位操作符(& | ^ ~ >> >>> <<)要小心点,&容易误写为&&
  9. function语句定义的函数存在声明提升,使用函数表达式或IIFE替代之
  10. 不要使用类型的包装对象,形如new Boolean()、new Number()、new String(),另外也应避免使用new Object()、new Array(),使用{}、[]代替
  11. new运算符后跟的函数应以首字母大写的形式命名
  12. js中的void是一个运算符,接受一个运算数并始终返回undefined,没有作用,应避免使用

 

欢迎关注、点赞

你可能感兴趣的:(JS)