实用的JavaScript技巧、经验总结

  1. 避免给一个未申明变量赋值,因为这会直接创建一个全局变量。

  2. 总是使用 ‘===’ 而不是 ‘==’,’===’会直接比较,而’==’必要时会进行类型转换等造成错误。

  3. 使用typeof instanceof 应当小心。

    1
    2
    3
    4
    typeof null // object
    function A(){}
    new A() instanceof A // true
    new A() instanceof Object // true
  4. arguments 对象转换成一个数组

    1
    2
    Array.ptototype.slice.call(arguments);
    Array.from(arguments) //ES6
  5. 验证一个参数是否是数组

    1
    Array.prototype.toString.call(a) === '[object Array]'
  6. 取得一个数组中最大值与最小值

    1
    2
    Math.max.apply(Math, arr);
    Math.min.apply(Math, arr);
  7. 使用splice删除数组中某一个/一些元素,而不是使用delete,如果使用delete的话,相当于只是把原值变为undefined

  8. 使用for .. of来遍历数组,使用for .. in 要避免遍历到原型上面的可枚举属性,使用hasOwnProperty()来检测

  9. 不要扩展Object.prototype,因为这会给所有(?)对象增加属性/方法,从而产生很多意想不到的行为和错误!

  10. 对于一个构造函数,总是使用 new进行构造函数调用,否则默认返回空(对象)。

  11. arguments.callee() 可执行当前函数,不推荐使用。

  12. 认识 ‘+’运算符, 对于对象而言,会转换成字符串,对于其他运算符则会尝试转成数字。

  13. 在使用if语句是,如果需要在条件中赋值,需要加上括号:
    `javascript
    if((x = y)){
    // do something
    }
    并且结果是否为真取决于y的真假。

  14. 判断一个数是否为NAN使用 x !== x,为true则该变量为NAN(NAN不等于自身)

分享到 评论