JavaScript最佳实践

Chr*_*oph 5 javascript

这与此问题有些相关,但我并不是要求有关JavaScript最佳实践的资源,而是您的实际建议.

我将从我自己的列表开始.如果您确定该建议没有争议,您可以发布答案或直接编辑问题.

开始了:

  • 总是用 var
  • 大写构造函数的名称 - 没有别的
  • 使用===比较
  • 使用原语,如显式转换Number(),String(),Boolean()
  • 检查原始类型 typeof
  • 检查对象类型 instanceof
  • 检查内置对象类型Object.prototype.toString()以避免跨框架问题,例如

    Object.prototype.toString.call(obj) === '[object Array]'
    
    Run Code Online (Sandbox Code Playgroud)
  • 检查this构造函数,例如

    function MyObject() {
        if(!(this instanceof arguments.callee))
            throw new Error('constructor called with invalid `this`');
        // [...]
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 使用匿名函数进行命名空间不会污染全局范围,例如

    (function() {
        var noGlobalVar = 'foo';
        // [...]
    })();
    
    Run Code Online (Sandbox Code Playgroud)
  • hasOwnProperty()for..in循环 - 不要假设没有人搞乱原型

  • 不要使用for..in循环迭代数组或类数组对象的元素

Nos*_*dna 0

对基元使用显式转换,例如 Number()、String()、Boolean()

真的吗?我像躲避瘟疫一样躲避那些人。你对此有何看法?